javascript - 怎么做replaceAll?

时间:2012-07-13 01:54:57

标签: javascript regex replaceall

嗨,我这里有问题。我正在尝试使用javascript替换字符串中的+字符的所有实例。发生的事情是只改变了第一个实例。

这是我的代码:

var keyword = "Hello+Word%+";
keyword = keyword.replace("+", encodeURIComponent("+"));
alert(keyword);

输出为Hello%2BWord%+时应为Hello%2BWord%%2B,因为有+的2个实例。

您可以在http://jsfiddle.net/Wy48Z/

上查看此内容

请帮忙。提前谢谢。

3 个答案:

答案 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("+"));

注意我在加号前面加上反斜杠,因为否则会有“匹配前面一个或多个东西”的特殊含义。