Added proposed fix for bug #185
This commit is contained in:
parent
770a92a594
commit
c792f32514
27
src/jquery/jquery.js
vendored
27
src/jquery/jquery.js
vendored
|
@ -1770,16 +1770,16 @@ jQuery.extend({
|
||||||
// The regular expressions that power the parsing engine
|
// The regular expressions that power the parsing engine
|
||||||
parse: [
|
parse: [
|
||||||
// Match: [@value='test'], [@foo]
|
// Match: [@value='test'], [@foo]
|
||||||
[ "\\[ *(@)S *([!*$^=]*) *Q\\]", 1 ],
|
"\\[ *(@)S *([!*$^=]*)Q\\]",
|
||||||
|
|
||||||
// Match: [div], [div p]
|
// Match: [div], [div p]
|
||||||
[ "(\\[)Q\\]", 0 ],
|
"(\\[)Q\\]",
|
||||||
|
|
||||||
// Match: :contains('foo')
|
// Match: :contains('foo')
|
||||||
[ "(:)S\\(Q\\)", 0 ],
|
"(:)S\\(Q\\)",
|
||||||
|
|
||||||
// Match: :even, :last-chlid
|
// Match: :even, :last-chlid
|
||||||
[ "([:.#]*)S", 0 ]
|
"([:.#]*)S"
|
||||||
],
|
],
|
||||||
|
|
||||||
filter: function(t,r,not) {
|
filter: function(t,r,not) {
|
||||||
|
@ -1792,21 +1792,28 @@ jQuery.extend({
|
||||||
var p = jQuery.parse;
|
var p = jQuery.parse;
|
||||||
|
|
||||||
for ( var i = 0; i < p.length; i++ ) {
|
for ( var i = 0; i < p.length; i++ ) {
|
||||||
var re = new RegExp( "^" + p[i][0]
|
// get number for backreference
|
||||||
|
var br = 0;
|
||||||
|
if(p[i].indexOf('Q') != -1){
|
||||||
|
br = p[i].replace(/\\\(/g,'').match(/\(|S/g).length+1;
|
||||||
|
}
|
||||||
|
var re = new RegExp( "^" + p[i]
|
||||||
|
|
||||||
// Look for a string-like sequence
|
// Look for a string-like sequence
|
||||||
.replace( 'S', "([a-z*_-][a-z0-9_-]*)" )
|
.replace( 'S', "([a-z*_-][a-z0-9_-]*)" )
|
||||||
|
|
||||||
// Look for something (optionally) enclosed with quotes
|
// Look for something (optionally) enclosed with quotes
|
||||||
.replace( 'Q', " *'?\"?([^'\"]*?)'?\"? *" ), "i" );
|
.replace( 'Q', " *('|\"|)([^'\"]*?)\\"+br+" *" ), "i" );
|
||||||
|
|
||||||
var m = re.exec( t );
|
var m = re.exec( t );
|
||||||
|
|
||||||
if ( m ) {
|
if ( m ) {
|
||||||
// Re-organize the match
|
// Re-organize the match
|
||||||
if ( p[i][1] )
|
if(br == 4){
|
||||||
m = ["", m[1], m[3], m[2], m[4]];
|
m = ["",m[1], m[3], m[2], m[5]];
|
||||||
|
} else if(br != 0) {
|
||||||
|
m.splice(br,1);
|
||||||
|
}
|
||||||
// Remove what we just matched
|
// Remove what we just matched
|
||||||
t = t.replace( re, "" );
|
t = t.replace( re, "" );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue