如何用数字中的点替换逗号(或任何替换)[重复]

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 值槽下,并将下面的所有指针替换为 ttttfixed

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 实际上并没有输入插入符号。

以上是关于如何用数字中的点替换逗号(或任何替换)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何用 sed 替换缩小的 javascript 文件中的多个值 [重复]

如何用数据框中的字符串值替换 int 值[重复]

如何用Powershell中的字符替换初始字符+空格

如何用熊猫(python)中的其他值替换NAN [重复]

如何用总和替换文件中的数字?

如何用相同的值替换双精度数组中的所有项目[重复]