在JavaScript中替换字符串的所有出现次数

时间:2014-06-15 06:52:13

标签: javascript php html string replace

我有一个字符串如下

var company = "Microst+Apple+Google";

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

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

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

我认为JavaScript认为+是算术运算。是否有特殊符号可供使用?或者除了直接使用+号外,还可以使用变量? 如果是这样请提。任何想法如何做到这一点?

3 个答案:

答案 0 :(得分:1)

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

您必须逃避+

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

答案 1 :(得分:1)

你需要逃脱它:

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

这是因为+是用于表示前一个字符应匹配1次或更多次的特殊符号。

您可以在此处详细了解正则表达式语法:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

答案 2 :(得分:0)

您可以使用:

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

或者更简单的方法:

var company = encodeURIComponent(company);

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

在这两种情况下,输出为:

  

1.806%2BApple%2BGoogle