2014-09-01 89 views
1

我真的不明白.replace的语法:D有人可以修复我的代码吗?现在它只从URL中删除& chat = 1,但我需要它从& chat = 1删除所有内容到URL的结尾。 范例网址:从url中删除参数

http://xxxxxxx.xx/index.php?menu=1&submenu=1&chat=1&od=3&komu=1 

结果我需要什么:

http://xxxxxxx.xx/index.php?menu=1&submenu=1 

结果是什么我的代码现在做:

http://xxxxxxx.xx/index.php?menu=1&submenu=1&od=3&komu=1 

代码我现在使用的是什么:

location.href=location.href.replace(/&?chat=([^&]$|[^&]*)/i, ""); 

Thx for he LP,对不起,我的英语:)

回答

2

您正在使用的正则表达式的一部分,你的更换,并根据你所需要的这种表达似乎更简单,适合您的需要:

&?chat=.* 

正则表达式中

  • ?意味着可选所以&是可选的可以或可以在字符串中不存在。
  • chat=这是由
  • .*这个字面上预期的字符串,随后基本上意味着什么,从0到其他尽可能多的字符存在的字符串中。

  • i最后意味着大小写不敏感。

Online Demo

事情是这样的:

"http://xxxxxxx.xx/index.php?menu=1&submenu=1&chat=1&od=3&komu=1".replace(/&?chat=.*/i,"") 
//->outputs "http://xxxxxxx.xx/index.php?menu=1&submenu=1" 
+0

THX解释!问题解决了 :) – 2014-09-01 14:51:16