Commit
…are.com/articles/2010/jqueryregex/jQueryRegexes.html Additionally broke out all remaining inline RegExp. Fixes #7062.
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,11 +3,11 @@ | |
var rclass = /[\n\t]/g, | ||
rspace = /\s+/, | ||
rreturn = /\r/g, | ||
rspecialurl = /href|src|style/, | ||
rtype = /(button|input)/i, | ||
rfocusable = /(button|input|object|select|textarea)/i, | ||
rclickable = /^(a|area)$/i, | ||
rradiocheck = /radio|checkbox/; | ||
rspecialurl = /^(?:href|src|style)$/, | ||
rtype = /^(?:button|input)$/i, | ||
rfocusable = /^(?:button|input|object|select|textarea)$/i, | ||
rclickable = /^a(?:rea)?$/i, | ||
rradiocheck = /^(?:radio|checkbox)$/i; | ||
This comment has been minimized.
Sorry, something went wrong.
davidmurdoch
|
||
|
||
jQuery.fn.extend({ | ||
attr: function( name, value ) { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,21 +17,37 @@ var jQuery = function( selector, context ) { | |
|
||
// A simple way to check for HTML strings or ID strings | ||
// (both of which we optimize for) | ||
quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w\-]+)$/, | ||
quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w-]+)$)/, | ||
|
||
// Is it a simple selector | ||
isSimple = /^.[^:#\[\.,]*$/, | ||
|
||
// Check if a string has a non-whitespace character in it | ||
rnotwhite = /\S/, | ||
rwhite = /\s/, | ||
|
||
// Used for trimming whitespace | ||
trimLeft = /^\s+/, | ||
trimRight = /\s+$/, | ||
|
||
// Check for non-word characters | ||
rnonword = /\W/, | ||
|
||
// Match a standalone tag | ||
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, | ||
|
||
// JSON RegExp | ||
rvalidchars = /^[\],:{}\s]*$/, | ||
rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, | ||
rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, | ||
rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, | ||
|
||
// Useragent RegExp | ||
rwebkit = /(webkit)[ \/]([\w.]+)/, | ||
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, | ||
rmsie = /(msie) ([\w.]+)/, | ||
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, | ||
|
||
// Keep a UserAgent string for use with jQuery.browser | ||
userAgent = navigator.userAgent, | ||
|
||
|
@@ -136,7 +152,7 @@ jQuery.fn = jQuery.prototype = { | |
} | ||
|
||
// HANDLE: $("TAG") | ||
} else if ( !context && /^\w+$/.test( selector ) ) { | ||
} else if ( !context && !rnonword.test( selector ) ) { | ||
this.selector = selector; | ||
this.context = document; | ||
selector = document.getElementsByTagName( selector ); | ||
|
@@ -509,9 +525,9 @@ jQuery.extend({ | |
|
||
// Make sure the incoming data is actual JSON | ||
// Logic borrowed from http://json.org/json2.js | ||
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") | ||
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") | ||
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) { | ||
if ( rvalidchars.test(data.replace(rvalidescape, "@") | ||
.replace(rvalidtokens, "]") | ||
.replace(rvalidbraces, "")) ) { | ||
|
||
// Try to use the native JSON parser first | ||
return window.JSON && window.JSON.parse ? | ||
|
@@ -761,10 +777,10 @@ jQuery.extend({ | |
uaMatch: function( ua ) { | ||
ua = ua.toLowerCase(); | ||
|
||
var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) || | ||
/(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) || | ||
/(msie) ([\w.]+)/.exec( ua ) || | ||
!/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || | ||
var match = rwebkit.exec( ua ) || | ||
ropera.exec( ua ) || | ||
rmsie.exec( ua ) || | ||
ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || | ||
[]; | ||
|
||
return { browser: match[1] || "", version: match[2] || "0" }; | ||
|
@@ -792,7 +808,7 @@ if ( indexOf ) { | |
|
||
// Verify that \s matches non-breaking spaces | ||
// (IE fails on this test) | ||
This comment has been minimized.
Sorry, something went wrong.
dieseltravis
|
||
if ( !/\s/.test( "\xA0" ) ) { | ||
if ( !rwhite.test( "\xA0" ) ) { | ||
trimLeft = /^[\s\xA0]+/; | ||
trimRight = /[\s\xA0]+$/; | ||
} | ||
|
Is this correct?