正则表达式应该像这样格式化数字:
1000.999 -> 1000.999
10000.99 -> 10000.99
1000000 -> 1000000
function format(value) { ... }
正则表达式应该像这样格式化数字:
1000.999 -> 1000.999
10000.99 -> 10000.99
1000000 -> 1000000
function format(value) { ... }
ES6+ 示例:
ES5 示例:
重点是将点或逗号前后的部分分开,在第一部分插入空格,然后将它们组合起来。
细节
^(.*?)((?:[,.]\d+)?|)$:^- 行首(.*?)- 子模式 #1:0 个或多个任意字符(可以替换(\d*)为仅捕获数字)((?:[,.]\d+)?|)- 子模式 #2:点或逗号后跟 1+ 位数字或空字符串$- 行结束replace(/\B(?=(?:\d{3})*$)/g, ' ')在该点插入 1 个空格,后跟 0 次或多次重复 3 位数字,直到行尾。无规律的变体:
这是通过 Intl.NumberFormat 完成的 - 这里有一个码头。
它也适用于开箱即用的点 :) 对于逗号,您必须深入挖掘,让我们这样做
.replace(',', '.'),以防您需要再次返回原来的符号.replace('.', ',')例子:
我不知道是否可以从字符串末尾开始替换......所以我尝试了这个: