Javascript正则表达式多重匹配

这个问题在这里已经有了答案:

  • 我怎样才能在JavaScript中获取查询字符串值? 73个答案

  • 你可以使用正则表达式来做到这一点。

    var qualityRegex = /(?:^|[&;])quality=([^&;]+)/g,
        matches,
        qualities = [];
    
    while (matches = qualityRegex.exec(window.location.search)) {
        qualities.push(decodeURIComponent(matches[1]));   
    }
    

    的jsfiddle。

    质量将是qualities


    对于希望能够匹配url中的非预定义参数名称的人,@alex的答案略有变化。

    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);
    

    的jsfiddle

    链接地址: http://www.djcxy.com/p/17605.html

    上一篇: Javascript Regular Expression multiple match

    下一篇: Getting all URL parameters using regex