X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fselector%2Fselector.js;h=be50d332f2e547a8200c4f88ac92b679d068ab35;hb=fce2bdf7ff1d5a293690c65de36a7824a50bc54f;hp=48c6e1573fb739557bc094ef7293c78856c000f8;hpb=9c94ef4c411867d38f301ccbf406af21e277188c;p=jquery.git diff --git a/src/selector/selector.js b/src/selector/selector.js index 48c6e15..be50d33 100644 --- a/src/selector/selector.js +++ b/src/selector/selector.js @@ -56,6 +56,9 @@ jQuery.extend({ "$=": "z&&z.substr(z.length - m[4].length,m[4].length)==m[4]", "*=": "z&&z.indexOf(m[4])>=0", "": "z", + // these are for evaling in a regexp. + "=~": "eval(m[4]).test(z)", + "!~": "!eval(m[4]).test(z)", _resort: function(m){ return ["", m[1], m[3], m[2], m[5]]; }, @@ -67,7 +70,7 @@ jQuery.extend({ // The regular expressions that power the parsing engine parse: [ // Match: [@value='test'], [@foo] - /^\[ *(@)([\w-]+) *([!*$^=]*) *('?"?)(.*?)\4 *\]/, + /^\[ *(@)([\w-]+) *([!*$^=!~]*) *('?"?)(.*?)\4 *\]/, // Match: [div], [div p] /^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/, @@ -77,7 +80,7 @@ jQuery.extend({ // Match: :even, :last-chlid, #id, .class new RegExp("^([:.#]*)(" + - ( jQuery.chars = "(?:[\\w\u0128-\uFFFF*-]|\\\\.)" ) + "+)") + ( jQuery.chars = "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)" ) + "+)") ], token: [ @@ -149,7 +152,7 @@ jQuery.extend({ // An attempt at speeding up child selectors that // point to a specific element tag - var re = /^[\/>]\s*([\w*-]+)/; + var re = new RegExp("^[/>]\\s*(" + jQuery.chars + "+)"); var m = re.exec(t); if ( m ) { @@ -204,7 +207,7 @@ jQuery.extend({ } else { // Optomize for the case nodeName#idName - var re2 = new RegExp("^(\\w+)(#)(" + jQuery.chars + "+)"); + var re2 = new RegExp("^(" + jQuery.chars + "+)(#)(" + jQuery.chars + "+)"); var m = re2.exec(t); // Re-organize the results, so that they're consistent