我正在尝试为所有专门用于搜索词的“%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”字符串。
谢谢。
最佳答案
您需要使替换全局,像这样:
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");