【问题标题】:How can I replace point with comma?如何用逗号替换点?
【发布时间】:2018-07-06 03:25:41
【问题描述】:

我想用逗号替换所有点:

var text = "1.2";
var comma = text.replace(/./g, ",");
console.log(comma);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我期望的结果:

1,2

【问题讨论】:

标签: jquery text replace


【解决方案1】:

您正在使用正则表达式 (/./g) 来查找要替换的字符;但是,period/dot (.) in regular expressions 匹配 any-and-all 字符(即它是通配符)。这就是为什么您的输出恰好是一串逗号的原因。

要获得您正在寻找的行为(全局搜索和替换所有句点),您必须使用反斜杠转义点:

var text = "1.2.3";
var comma = text.replace(/\./g, ",");
console.log(comma); // => "1,2,3"

【讨论】:

    【解决方案2】:

    用这个"."更改/./g

    var text = "1.2";
    var comma = text.replace(".", ",");
    console.log(comma);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    【讨论】:

    • 我只是想知道,为什么它会反过来工作:text.replace(/,/g, ".") 如果我想用点替换逗号
    • @Jarla 查看我的评论和/或副本
    • @Jarla 。在正则表达式中可能有特殊含义。
    • 啊好的,我明白了!
    • 这不是合适的答案,因为看起来@Jarla 的意图是进行全局搜索和替换(不仅仅是替换第一个匹配项)。请参阅我的回答,了解为什么您最初的尝试没有奏效以及您可以采取哪些措施来解决这个问题。
    【解决方案3】:

    @Andam 已经回答了关于使用replace 方法的问题,这很酷 对于您的情况,但很高兴知道,有时您可以看到 splitjoin 方法的组合,它们可用于相同的情况:

    var text = "1.2";
    var comma = text.split(".").join(",");
    console.log(comma);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    split 方法返回参数前后的片段数组,传递给此方法,因此如果需要,您也可以使用此数组。但正如我已经说过的,如果您只想将一个字符替换为另一个字符,replace 就足够了。

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      相关资源
      最近更新 更多