Skip to content

Instantly share code, notes, and snippets.

@ixzy24
Created June 5, 2012 21:18
Show Gist options
  • Save ixzy24/2878038 to your computer and use it in GitHub Desktop.
Save ixzy24/2878038 to your computer and use it in GitHub Desktop.
Extending jQuery selector
jQuery.expr[':'].regex = function(elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels,'')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^s+|s+$/g,''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}
/******** Usage ********/
// Select all elements with an ID starting a vowel:
$(':regex(id,^[aeiou])');
// Select all DIVs with classes that contain numbers:
$('div:regex(class,[0-9])');
// Select all SCRIPT tags with a SRC containing jQuery:
$('script:regex(src,jQuery)');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment