Return to Snippet

Revision: 32196
at September 21, 2010 02:37 by magicrebirth


Updated Code
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)');
 
// Yes, I know the last example could be achieved with 
// CSS3 attribute selectors; it's just an example...

Revision: 32195
at September 21, 2010 02:34 by magicrebirth


Initial Code
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));
}

Initial URL
http://james.padolsey.com/javascript/regex-selector-for-jquery/

Initial Description
check the original blogpost for more how-to examples

Initial Title
Regex Selector for jQuery

Initial Tags
regex, jquery, filter

Initial Language
JavaScript