James Padolsey的jQuery正则表达式选择器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了James Padolsey的jQuery正则表达式选择器相关的知识,希望对你有一定的参考价值。
The regular expression must be in non-literal notation; so replace all backslashes with two backslashes (e.g. ^w+$ -> ^\w+$).All searches are case insensitive; you can change this by removing the ‘i’ flag in the plugin.
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... // Select all elements with a width between 100 and 300: $(':regex(css:width, ^[1-3]\d{2}px$)'); // Select all NON block-level DIVs: $('div:not(:regex(css:display, ^block$))'); // Add data property to all images (just an example); $('img').each(function(){ $(this).data('extension', $(this)[0].src.match(/.(.{1,4})$/)[1]); }); // Select all images with PNG or JPG extensions: $('img:regex(data:extension, png|jpg)');
以上是关于James Padolsey的jQuery正则表达式选择器的主要内容,如果未能解决你的问题,请参考以下文章