我正在尝试为输入数字的模糊输入提供格式。因此,如果我输入:1234 并模糊输入,则输入将采用以下格式:1.234。
我用这个正则表达式得到了这个
/(\d)(?=(\d{3})+(?!\d))/g
并替换字符串值 $1.
。像这样:
value.replace(this._mask.regex, this._mask.replaceString)
...直到包含小数点。
所以当我输入 1234,9999 时,我得到 1.234,9.999。我是正则表达式的初学者,我想在现有正则表达式中添加一些内容,以避免格式化逗号后的值。
最佳答案
使用toLocaleString
.
console.log(1234.5678.toLocaleString("en-us", {maximumFractionDigits: 10}));
console.log(1234.5678.toLocaleString("de"));
如果您的输入来自输入字段,请确保您获得的是 Number#toLocaleString
而不是字符串输入给出的默认 Object#toLocaleString
你,做:
Number(input.value).toLocaleString(...)
关于Javascript 正则表达式将文本格式化为千位(包括小数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37487741/