@@ -3,13 +3,16 @@ var oldInit = jQuery.fn.init,
33 oldFind = jQuery . find ,
44 rattrHashTest = / \[ ( \s * [ - \w ] + \s * ) ( [ ~ | ^ $ * ] ? = ) \s * ( [ - \w # ] * ?# [ - \w # ] * ) \s * \] / ,
55 rattrHashGlob = / \[ ( \s * [ - \w ] + \s * ) ( [ ~ | ^ $ * ] ? = ) \s * ( [ - \w # ] * ?# [ - \w # ] * ) \s * \] / g,
6+ rxhtmlTag = / < (? ! a r e a | b r | c o l | e m b e d | h r | i m g | i n p u t | l i n k | m e t a | p a r a m ) ( ( [ a - z ] [ ^ \/ \0 > \x20 \t \r \n \f ] * ) [ ^ > ] * ) \/ > / gi,
7+ rsingleTag = ( / ^ < ( [ a - z ] [ ^ \/ \0 > : \x20 \t \r \n \f ] * ) [ \x20 \t \r \n \f ] * \/ ? > (?: < \/ \1> | ) $ / i ) ,
68
79 // Support: Android <=4.0 only
810 // Make sure we trim BOM and NBSP
911 rtrim = / ^ [ \s \uFEFF \xA0 ] + | [ \s \uFEFF \xA0 ] + $ / g;
1012
1113jQuery . fn . init = function ( arg1 ) {
12- var args = Array . prototype . slice . call ( arguments ) ;
14+ var args = Array . prototype . slice . call ( arguments ) ,
15+ changed ;
1316
1417 if ( typeof arg1 === "string" && arg1 === "#" ) {
1518
@@ -18,6 +21,15 @@ jQuery.fn.init = function( arg1 ) {
1821 args [ 0 ] = [ ] ;
1922 }
2023
24+ if ( typeof arg1 === "string" && arg1 . trim ( ) . charAt ( 0 ) === "<" ) {
25+ if ( ! rsingleTag . test ( arg1 ) ) {
26+ changed = arg1 . replace ( rxhtmlTag , "<$1></$2>" ) ;
27+ if ( changed !== arg1 ) {
28+ migrateWarn ( "HTML tags must be properly nested and closed: " + arg1 ) ;
29+ }
30+ }
31+ }
32+
2133 return oldInit . apply ( this , args ) ;
2234} ;
2335jQuery . fn . init . prototype = jQuery . fn ;
0 commit comments