Shy*_*yam 5 javascript regex currency pattern-matching
我有以下代码:
var x = "100.007"
x = String(parseFloat(x).toFixed(2));
return x
=> 100.01
Run Code Online (Sandbox Code Playgroud)
这非常有效,只是我希望它如何工作.我只想要一个小小的添加,这类似于:
var x = "100,007"
x.replace(",", ".")
x.replace
x = String(parseFloat(x).toFixed(2));
x.replace(".", ",")
return x
=> 100,01
Run Code Online (Sandbox Code Playgroud)
但是,此代码将替换第一次出现的",",我想要捕获最后一个.任何帮助,将不胜感激.
Poi*_*nty 15
您可以使用正则表达式执行此操作:
x = x.replace(/,([^,]*)$/, ".$1");
Run Code Online (Sandbox Code Playgroud)
该正则表达式匹配逗号,后跟任意数量的文本,不包括逗号.替换字符串只是一个句点,后跟原始最后一个逗号之后的句子.字符串中前面的其他逗号不会受到影响.
现在,如果您真的转换为"欧洲风格"格式的数字(因为缺少更好的术语),您还需要担心"." "美国风格"编号会有逗号的地方的字符.我想你可能只是想摆脱它们:
x = x.replace(/\./g, '');
Run Code Online (Sandbox Code Playgroud)
在字符串上使用".replace()"函数时,您应该理解它返回修改后的字符串.但是,它不会修改原始字符串,因此声明如下:
x.replace(/something/, "something else");
Run Code Online (Sandbox Code Playgroud)
对"x"的值没有影响.