var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
以上这个是一个检测HTML字符串和ID字符串的简单正则判断方法。
实例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> </html> <script> (function(){ //以下两行是为了防止之前的有这两个变量 var _jQuery = window.jQuery; var _$ = window.$; var jQuery = window.jQuery = window.$ = function(selector,context){ return new jQuery.fn.init(selector,context); } var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; //下面这个是jQuery的初始化函数. 每次new 一个jQuery对象的时候, //总是首先由这个函数实现初始化. jQuery.fn = jQuery.prototype = { init:function(selector,context){ selector = selector || document; /* * 下面要对selecotr对象进行进行分类的检查,不同类型,不同的处理. * selector可能的类型如下: * (1) 直接的一个Dom元素类型 * (2) 数组类型 * (3) 函数(function)类型 * (4) jQuery或者其他的类数组对象类型 * (5) string类型 * a) 没有context的情况 * b) 有context的情况 */ if(selector.nodeType){ this[0] = selector; this.length = 1; return this; } if(typeof selector == 'string'){ // 如果exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。 var match = quickExpr.exec( selector ); if ( match && (match[1] || !context) ){ if ( match[1] ) selector = jQuery.clean( [ match[1] ], context ); else{ var elem = document.getElementById( match[3] ); if(elem){ if ( elem.id != match[3] ){ return jQuery().find( selector ); } return jQuery( elem ); } } }else{ return jQuery( context ).find( selector ); } }else if ( jQuery.isFunction( selector ) ){ return jQuery( document )[ jQuery.fn.ready ? "ready" :"load" ]( selector ); } return this.setArray(jQuery.makeArray(selector)); } } jQuery.fn.init.prototype = jQuery.fn; }()) </script>