JavaScript替换问号

10

如何在JavaScript中为?=创建正则表达式?

我想从

http://localhost/search?search=words

得到

http://localhost/search/search/words

(将?search=替换为/search/)

<script>
var ss = "http://localhost/search?search=words".replace("/\?search\=/g", "/search/");
document.write(ss);
</script>

顺便说一下:这只是一些实践,而不是一个htaccess重写。谢谢。


从键值对转换为单值目录没有意义,而且可能会搞乱你已有的任何编码。是的,你说了练习,但你实际上想要实现什么? - Incognito
3个回答

21

就快完成了! = 不是特殊字符,不需要转义。此外,正则表达式字符串不需要用引号括起来。所以:

"http://localhost/search?search=words".replace(/\?search=/g, "/search/");

+1 表示比原来快了 120 秒!=)(当然,也是绝对正确的!) - David Thomas

8
如何?
str.replace(/[?=]/g, "/");

请注意,最好制作一个函数来理解URL结构并正确重建它,这将产生更健康、更强大的代码,而不是简单地进行替换。


双斜杠不会转义斜杠。 - PointedEars
我的错,与反斜杠混淆了。已更正。 - Madara's Ghost
它会运行一次,但是它不符合OP的要求。我已经修复了。另外,我实际上写了FM的一部分,所以请不要认为我在回答问题时缺乏知识,尽管我应该已经睡着了。 http://i.qkme.me/35bp94.jpg << 顺便说一句,这是我的表情 :) - Madara's Ghost

4
您可以使用简单的字符串进行替换:
var ss = "http://localhost/search?search=words".replace("?search=", "/search/");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接