Una de las maravillas de los frameworks es que no se queda en simplemente una colección de funcionalidades que te pueden ayudar sinó que además te permiten extenderlos y darles más capacidades a sus funcionalidades.
jQuery, al igual que los demás, dispone de esta propiedad y además nos permite extender los selectores con los que podemos realizar consultas sobre nuestra aplicación. James Padolsey lo sabe y por ello ha extendido el listado de selectores con uno nuevo que puede ayudar a mucha gente.
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));
}
Este código, nos permite extender el listado de selectores disponibles con :regex
, un selector que permite aplicar expresiones regulares a los objetos que estamos buscando.
// Selecciona todo los elementos que no comiencen vocales:
$(':regex(id,^[aeiou])');
// Selecciona todos los DIV's que contengan números
$('div:regex(class,[0-9])');
// Todos los elementos SCRIPT que tenga jQuery en el atributo SRC
$('script:regex(src,jQuery)');
4 comentarios, 0 referencias
+
#