javascript - URI在Javascript中转义n个斜杠

标签 javascript

我正在尝试为所有“%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/

相关文章:

javascript - node.js 和 socket.io。 websocket 的传输类型配置?

javascript - 用谷歌地图绘制饼图

Javascript 将字符串转换为整数

javascript - d3 Selection.remove() 不删除

javascript - 如何在延迟后显示模态?

javascript - Android 不从间隔播放 html5 音频

javascript - 类似 MVC 的代码如何在 Node.js 中工作?

javascript - 我在尝试运行机器人命令时收到此错误

javascript - NodeJS Forge - 将加密字节字符串转换为十六进制字符数组

javascript - jQuery Accordion |在页面加载时打开第一个元素和事件状态混淆