- PVSM.RU - https://www.pvsm.ru -

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, \/, \.

Автор: Timothy

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/24350

Ссылки в тексте:

[1] Источник: http://habrahabr.ru/post/165187/