【问题标题】: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"); 这将匹配逗号,前提是它们被至少一个数字包围。

标签: javascript regex replace jscript


【解决方案1】:

由于replace() 创建/返回一个新字符串而不是修改原始字符串 (tt),您需要将变量 (tt) 设置为等于从 replace 函数返回的新字符串。

tt = tt.replace(/,/g, '.')

JSFiddle

【讨论】:

  • 如果你将它用于任何字符串,你可能会遇到问题。例如。像1, 2, 3 这样的输入变成1. 2. 3。为确保您有号码,请参阅stackoverflow.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 docsreplace 返回新字符串 - 它不会修改您传递给它的字符串。

        var tt="88,9827";
        tt = tt.replace(/,/g, '.');
        ^^^^
        alert(tt);
        

        【讨论】:

        • @Leo 实际上并没有输入插入符号。
        猜你喜欢
        • 2016-09-05
        • 2018-07-06
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        • 2018-08-31
        • 1970-01-01
        相关资源
        最近更新 更多