Not work with jQuery 1.1.3.1
AHeimlich wrote: > > Heh, I did something just like that for a project I'm working on, but I > used > /= instead. I had thought about using =~, but ~= is an official CSS > selector > (which jQuery has chosen not to support because of a supposed lack of > real-world usefulness) and I didn't want the two to get confused. / is > JavaScript's regexp delimiter, so I thought it would be more recognizable > that way. Also, mine doesn't include negation (because I didn't need it). > Here's my code: > > /** Custom attribute selector to allow testing attribute values > against > * regular expressions > * > * Do not include delimiters in your regular expression. If you need > to > * use \, be aware that you have to use \\ instead because of the way > * string escaping is done in JavaScript > * > * @example $(':[EMAIL PROTECTED]/="bday\\[\\w+\\]"]') > * @before [<select name="bday[month]">, <select name="bday[day]">, > <input name="bday[year]">, <input name="foobar">] > * @result [<select name="bday[month]">, <select name="bday[day]">, > <input name="bday[year]">] > * @desc Test for a form input whose "name" attribute matches the > regular expression bday\[\w+\] > * > * @name /= > * @type string > * @cat Plugins/HValidator > */ > $.expr["@"]["/="] = "(new RegExp(m[4])).test(z)"; > > // Parser to enable detection of things like [EMAIL PROTECTED]/="<insert > regexp > here>"] > $.parse.splice(0, 0, /^\[ *(@)([a-z0-9_-]*) *(\/=) *('?"?)(.*?)\4 > *\]/i); > > On 4/2/07, Ralf S. Engelschall <[EMAIL PROTECTED]> wrote: >> >> >> I'm usually using Perl's Class::XPath and Tree::XPathEngine modules >> and there the Perl-style regex matching operators "=~" and "!~" are >> available as operators in the XPath filters. What I'm speaking about? >> Well, for example selections like: [EMAIL PROTECTED] =~ >> "^.+(gif|jpe?g|png)$"] >> >> I know that this is neither strict CSS nor XPath syntax, but for being >> able to leverage from the full power of regular expressions directly in >> the jQuery selectors I found the following small change to the jQuery >> core very useful. >> >> At least it satisfied me and my personal Tree::XPathEngine background >> and perhaps it is also useful for someone else in the jQuery community. >> Find the current patch (against jQuery SVN as of today) appended. Feel >> free to do whatever you want with it... >> >> Ralf S. Engelschall >> [EMAIL PROTECTED] >> www.engelschall.com >> >> Index: jquery/src/selector/selector.js >> =================================================================== >> --- jquery/src/selector/selector.js (revision 1611) >> +++ jquery/src/selector/selector.js (working copy) >> @@ -52,6 +52,8 @@ >> "@": { >> "=": "z==m[4]", >> "!=": "z!=m[4]", >> + "=~": "z.match(RegExp(m[4]))!=null", >> + "!~": "z.match(RegExp(m[4]))==null", >> "^=": "z&&!z.indexOf(m[4])", >> "$=": "z&&z.substr(z.length - >> m[4].length,m[4].length)==m[4]", >> "*=": "z&&z.indexOf(m[4])>=0", >> @@ -67,7 +69,7 @@ >> // The regular expressions that power the parsing engine >> parse: [ >> // Match: [EMAIL PROTECTED]'test'], [EMAIL PROTECTED] >> - /^\[ *(@)([\w-]+) *([!*$^=]*) *('?"?)(.*?)\4 *\]/, >> + /^\[ *(@)([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, >> >> // Match: [div], [div p] >> /^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/, >> >> > > > -- > Aaron Heimlich > Web Developer > [EMAIL PROTECTED] > http://aheimlich.freepgs.com > > -- View this message in context: http://www.nabble.com/regex-operators-for-the-jQuery-XPath-filter-tf3503968s15494.html#a12006604 Sent from the JQuery mailing list archive at Nabble.com.