如何用数字中的点替换逗号(或任何替换)[重复]
Posted
技术标签:
【中文标题】如何用数字中的点替换逗号(或任何替换)[重复]【英文标题】:How to replace comma with a dot in the number (or any replacement) [duplicate] 【发布时间】:2013-06-23 14:20:34 【问题描述】:我还没有找到用点替换 , 的解决方案。
var tt="88,9827";
tt.replace(/,/g, '.')
alert(tt)
//88,9827
我正在尝试将逗号替换为点
提前致谢
【问题讨论】:
我知道这是一个非常古老的问题,但对于那些拥有复杂的类似 CSV 字符串的人来说,我的评论可能会很有趣。如果您想用这样的字符串中的点替换逗号:"0,001; x,y,z; 0,a;b,1; 2,45;"使用接受的答案是行不通的。然后您可以尝试类似的操作:var res = tt.replace(/([0-9]1,)(,)([0-9]1,)/g,"$1.$3");
这将匹配逗号,前提是它们被至少一个数字包围。
【参考方案1】:
由于replace()
创建/返回一个新字符串而不是修改原始字符串 (tt
),您需要将变量 (tt
) 设置为等于从 replace
函数返回的新字符串。
tt = tt.replace(/,/g, '.')
JSFiddle
【讨论】:
如果你将它用于任何字符串,你可能会遇到问题。例如。像1, 2, 3
这样的输入变成1. 2. 3
。为确保您有号码,请参阅***.com/q/52329376/1066234 的解决方案【参考方案2】:
这将需要新的 var ttfixed
然后在 tt
值槽下,并将下面的所有指针替换为 tt
到 ttfixed
ttfixed = (tt.replace(",", "."));
【讨论】:
请花点时间改进答案的格式。 多余的括号是不必要的,并且由于 OP 希望更改原始 var,因此无需创建新的。另外,如果你要创建一个新的,你应该在前面添加var
以避免创建一个全局变量。
这是一个非常简单但有效的解决方案。【参考方案3】:
你也可以这样做:
var tt="88,9827";
tt=tt.replace(",", ".");
alert(tt);
working fiddle example
【讨论】:
【参考方案4】:来自函数的定义(http://www.w3schools.com/jsref/jsref_replace.asp):
replace() 方法在字符串中搜索指定的值,或者 正则表达式,并返回指定的新字符串 值被替换。
此方法不会改变原始字符串。
因此,这行:tt.replace(/,/g, '.')
不会改变tt
的值;它只是返回新值。
您需要将此行替换为:tt = tt.replace(/,/g, '.')
【讨论】:
【参考方案5】:替换字符后,需要赋值给变量。
var tt = "88,9827";
tt = tt.replace(/,/g, '.')
alert(tt)
在警告框中会显示 88.9827
【讨论】:
【参考方案6】:根据the docs,replace
返回新字符串 - 它不会修改您传递给它的字符串。
var tt="88,9827";
tt = tt.replace(/,/g, '.');
^^^^
alert(tt);
【讨论】:
@Leo 实际上并没有输入插入符号。以上是关于如何用数字中的点替换逗号(或任何替换)[重复]的主要内容,如果未能解决你的问题,请参考以下文章