function(regex, type, types, selector) {
  var matches = selector.match(regex);
  if (matches) {
    for (var i = 0; i < matches.length; i++) {
      types[type]++;
      // Replace this simple selector with whitespace so it won't be counted in further simple selectors
      selector = selector.replace(matches[i], ' ');
    }
  }

  return selector;
}
function(regex, type, types, selector) {
  var matches = selector.match(regex);
  if (matches) {
    for (var i = 0; i < matches.length; i++) {
      types[type]++;
      // Replace this simple selector with whitespace so it won't be counted in further simple selectors
      selector = selector.replace(matches[i], ' ');
    }
  }

  return selector;
}
function ( regex , type , types , selector ) { var matches = selector . match ( regex ) ; if ( matches ) { for ( var i = 0 ; i < matches . length ; i ++ ) { types [ type ] ++ ; // Replace this simple selector with whitespace so it won't be counted in further simple selectors selector = selector . replace ( matches [ i ] , ' ' ) ; } } return selector ; }
Find matches for a regular expression in a string and push their details to parts Type is "a" for IDs, "b" for classes, attributes and pseudo-classes and "c" for elements and pseudo-elements
Find matches for a regular expression in a string and push their details to parts Type is a for IDs b for classes attributes and pseudo - classes and c for elements and pseudo - elements