Javascript Regular Expression multiple match
本问题已经有最佳答案,请猛点这里访问。
我正在尝试使用javascript在具有查询字符串参数的URL(window.location.href)上执行正则表达式,但无法确定如何执行。在我的例子中,有一个查询字符串参数可以自己重复;例如"quality",所以这里我尝试匹配"quality="以获得一个具有4个值的数组(高、黑、绿、帅):
1 | http://www.acme.com/default.html?id=27&quality=tall&quality=dark&quality=green eyes&quality=handsome |
您可以使用regex来执行此操作。
1 2 3 4 5 6 7 | var qualityRegex = /(?:^|[&;])quality=([^&;]+)/g, matches, qualities = []; while (matches = qualityRegex.exec(window.location.search)) { qualities.push(decodeURIComponent(matches[1])); } |
杰西德。
质量将在
对于那些希望在URL中匹配非预定参数名的用户,@alex的答案有细微的变化。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var getUrlValue = function(name, url) { var valuesRegex = new RegExp('(?:^|[&;])' + name + '=([^&;]+)', 'g'), matches, values = []; while (matches = valuesRegex.exec(url)) { values.push(decodeURIComponent(matches[1])); } return values; } var url = 'http://www.somedomain.com?id=12&names=bill&names=bob&names=sally'; // ["bill","bob","sally"] var results = getUrlValue('names', url); |
杰西德