我正在尝试为所有“%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");
关于javascript - URI在Javascript中转义n个斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16402026/