【问题标题】:Replace All Occurrences Of a String in JavaScript替换 JavaScript 中所有出现的字符串
【发布时间】:2014-08-05 07:22:37
【问题描述】:

我有一个字符串如下

var company = "Microst+Apple+Google";

我想用 %2B 替换所有的 + 符号

但是当我使用这段代码时。它返回 0

var company = company.replace(/+/g, "%2B");

我认为 JavaScript 认为 + 是算术运算。有什么特殊的符号可以使用吗?或者除了直接使用+号之外可以使用变量吗? 如果有请提及。任何想法如何做到这一点?

【问题讨论】:

    标签: javascript php html string replace


    【解决方案1】:

    你需要逃避它:

    var company = company.replace(/\+/g, "%2B");

    这是因为+是特殊符号,用来表示前面的字符应该匹配1次或多次。

    您可以在此处阅读有关正则表达式语法的更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

    【讨论】:

    • 也许你想解释一下原因?
    【解决方案2】:

    不,JavaScript 不认为它是算术运算,但 + 是正则表达式中的量词,正则表达式解析器不理解你的。

    你必须转义+

    var company = company.replace(/\+/g, "%2B");
    

    【讨论】:

    • 这是否采取了替换“符号”的方法?
    【解决方案3】:

    你可以用这个:

    var company = company.replace(/\+/g, "%2B");
    

    或者更简单的方法:

    var company = encodeURIComponent(company);
    

    它将执行与正则表达式相同的操作。此外,它还会对所有 URI 字符进行编码,例如 &"(引号)、% 等...如果给定的字符串中有类似的字符。

    在这两种情况下,输出都是:

    Microst%2BApple%2BGoogle

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 2022-01-19
      相关资源
      最近更新 更多