我有一个字符串如下
var company = "Microst+Apple+Google";
我想用%2B替换所有+符号
但是当我使用这段代码时。它返回0
var company = company.replace(/+/g, "%2B");
我认为JavaScript认为+是算术运算。是否有特殊符号可供使用?或者除了直接使用+号外,还可以使用变量? 如果是这样请提。任何想法如何做到这一点?
答案 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