1

我正在尝试为所有“%2F”字符串设置替换,专门针对搜索词。我已经通过 encudeURIComponent(search_term) 运行了搜索词,并且只需要对 %2Fs 进行双重转义。

如果搜索词是“ac/dc”,我希望结果是:ac%252Fdc。

我可以像这样快速做到这一点:

search_term = encodeURIComponent(search_term);
search_term = search_term.replace("%2F", "%252F");

但是,这不适用于 ac//dc,它会返回:

ac%252F%2Fdc

当我想要的是:

ac%252F%252Fdc

我可以通过像这样运行替换来解决这个问题......

search_term = search_term.replace("%2F%2F", "%252F%252F");

这是不可扩展的。我想知道为什么第一次替换没有替换两个“%2F”字符串。

谢谢你。

4

1 回答 1

2

您需要使替换全局,如下所示:

search_term = encodeURIComponent(search_term);
search_term = search_term.replace(new RegExp("%2F", 'g'), "%252F");

可怕,我知道,但它有效。


编辑:正如Rob W所建议的,您最好使用正则表达式文字来执行此操作:

search_term = encodeURIComponent(search_term);
search_term = search_term.replace(/%2F/g, "%252F");
于 2013-05-06T15:30:54.027 回答