我正在构建一个“关键字”突出显示脚本,我需要编写一个正则表达式来解析以下网址,以找到要突出显示的搜索关键字。
我对正则表达式真的很不好,所以我希望有人能提供帮助。
我们的搜索字符串使用“skw”作为参数,使用“%2c”(逗号)分隔术语,“+”表示空格。
示例网址:
http://[url].com/Search.aspx?skw=term1 http://[url].com/Search.aspx?skw=term1%2c+term2
是否有一个我可以使用的正则表达式会给我一个看起来像这样的集合?
var "http://[url].com/Search.aspx?skw=term+one%2c+term2".match([Expression]);
matches[0] = "term one"
matches[1] = "term2"
谢谢!非常感谢任何帮助。
最佳答案
您无法通过单个匹配来完成此操作,但可以通过匹配、替换和拆分来完成此操作:
url.match(/\?(?:.*&)?skw=([^&]*)/)[1].replace(/\+/g, " ").split('%2c')
您可能希望单独进行匹配,并在匹配失败时退出(如果您的 URL 没有 skw 参数,则可能会出现这种情况)。
您可能确实也想执行转义,以处理查询中的其他转义字符:
unescape(url.match(/\?(?:.*&)?skw=([^&]*)/)[1].replace(/\+/g, " ")).split(',')
关于javascript - 正则表达式/Javascript 帮助 - 搜索 URL 术语解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120866/