RegEx Selector для jQuery

от автора

Всем давно известно, что jQuery легко расширяем. Сегодня мы добавим новый селектор — :regex.

Расширяем jQuery

Добавляем приведенный ниже код на те страницы, на которых хотим использовать :reget-селектор.

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

Использование :regex

// Выберет все DIVы с классами, содержащими числа:

$('div:regex(class,[0-9])'); 

// Выберет все SCRIPT тэги с параметром SRC содержащую строку jQuery:

$('script:regex(src,jQuery)'); 

// Выберет все элементы с параметром width между 100 и 300:

$(':regex(css:width, ^[1-3]\\d{2}px$)'); 

Внимание! Вместо одиночного backslash’a, нужно использовать двойной backslash, например \\d, \\S, \\/, \\.

ссылка на оригинал статьи http://habrahabr.ru/post/165187/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *