嗨,我这里有问题。我正在尝试使用javascript替换字符串中的+
字符的所有实例。发生的事情是只改变了第一个实例。
这是我的代码:
var keyword = "Hello+Word%+";
keyword = keyword.replace("+", encodeURIComponent("+"));
alert(keyword);
输出为Hello%2BWord%+
时应为Hello%2BWord%%2B
,因为有+
的2个实例。
您可以在http://jsfiddle.net/Wy48Z/
上查看此内容请帮忙。提前谢谢。
答案 0 :(得分:2)
你需要全球旗帜。
已在http://jsfiddle.net/rtoal/Wy48Z/1/
为您修复var keyword = "Hello+Word%+";
keyword = keyword.replace(/\+/g, encodeURIComponent("+"));
alert(keyword);
答案 1 :(得分:1)
javascript正则表达式,通过将expresison放在两个正斜杠之间来完成,例如:/<expression/
如果您想要全部替换,只需在最后一个之后附加g
,如:
/<expression/g
在您的情况下,它将是/\+/g
答案 2 :(得分:1)
跨浏览器方法是使用带有g
(全局)标志的regexp,这意味着“处理模式的所有匹配,而不仅仅是第一个”:
keyword = keyword.replace(/\+/g, encodeURIComponent("+"));
注意我在加号前面加上反斜杠,因为否则会有“匹配前面一个或多个东西”的特殊含义。