需要修改此正则表达式以不删除字符

时间:2010-10-31 15:50:25

标签: javascript regex

我有以下正则表达式(/\?(.*?)\&/)当我在下面的javascript代码中使用它时会删除“?”从替换结果。

href=href.replace((/\?(.*?)\&/),"")

开头的href值是这个......

/ShoppingCart.asp?ProductCode=238HOSE&CouponCode=test

我现在得到这个结果......

/ShoppingCart.aspCouponCode=test

我想得到这个......

/ShoppingCart.asp?CouponCode=test

如何修改Regexp来执行此操作

谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

在替换子字符串中添加问号:

href=href.replace((/\?(.*?)\&/),"?")

如果说,角色可能不是问号而已(或许可能是斜线),并且您需要保留它是哪一个,您可以使用捕获组:

href=href.replace((/([?\/])(.*?)\&/),"$1")

JavaScript正则表达式不支持Lookbehinds。

答案 1 :(得分:1)

要正确地执行此操作,您需要一个正则表达式,但这应该适用于您的情况:

href=href.replace((/\?(.*?)\&/),"?")