【发布时间】:2019-04-30 10:39:11
【问题描述】:
我有 2 种价格格式,我被正则表达式卡住了,我找不到任何解决方法。
我的正则表达式格式化价格:/(\d)(\d{3})(\.)/g
案例一:
var price = '1000000.0000';
var decimals = 2;
var thousandSeparator = ',';
var decimalSeparator = '.';
var formatedPrice = price.replace(/(\d)(\d{3})(\.)/g, '$1' + thousandSeparator + '$2' + decimalSeparator + '');
document.querySelector( '#case_1 span' ).innerHTML = formatedPrice;
结果:1000,000.0000
预期:1,000,000.0000
案例2:
var price = '1000000.0000';
var decimals = 2;
var thousandSeparator = '.';
var decimalSeparator = ',';
var formatedPrice = price.replace(/(\d)(\d{3})(\.)/g, '$1' + thousandSeparator + '$2' + decimalSeparator + '');
document.querySelector( '#case_2 span' ).innerHTML = formatedPrice;
结果:1000.000,0000
预期:1.000.000,0000
JsFiddle:https://jsfiddle.net/cpan2s6d/
是否可以只使用正则表达式来实现?
谢谢
【问题讨论】:
-
@Tim Biegeleisen,我已经尝试过了。对我没用
-
试试看
Intl.NumberFormatapi,它可以让你在没有正则表达式的情况下做你想做的事
标签: javascript jquery regex