我有以下正则表达式(/\?(.*?)\&/)
当我在下面的javascript代码中使用它时会删除“?”从替换结果。
href=href.replace((/\?(.*?)\&/),"")
开头的href值是这个......
/ShoppingCart.asp?ProductCode=238HOSE&CouponCode=test
我现在得到这个结果......
/ShoppingCart.aspCouponCode=test
我想得到这个......
/ShoppingCart.asp?CouponCode=test
如何修改Regexp来执行此操作
谢谢你的帮助。
答案 0 :(得分:2)
在替换子字符串中添加问号:
href=href.replace((/\?(.*?)\&/),"?")
如果说,角色可能不是问号而已(或许可能是斜线),并且您需要保留它是哪一个,您可以使用捕获组:
href=href.replace((/([?\/])(.*?)\&/),"$1")
JavaScript正则表达式不支持Lookbehinds。
答案 1 :(得分:1)
要正确地执行此操作,您需要一个正则表达式,但这应该适用于您的情况:
href=href.replace((/\?(.*?)\&/),"?")