十一大假,在家闲着无聊,想要模拟一个JQuery。
最最棘手的问题---正则表达式。是个头疼问题,所以我下定决心要搞定正则!
//首先,JS中的正则表达式有一个专门的类
var reg = new RegExp("这里传个正则表达式进去");
// 有两个验证方法
reg.exec("需要验证的字符串"); // exec方法,如果所传的字符串匹配这个正则表达式,则返回这个字符串,否则返回null;
reg.test("需要验证的字符串");// test方法,如果所传的字符串匹配这个正则表达式,则返回true,否则返回false
// 很简单的两个方法。
//拿一个新东西,应该先看看他是怎么用的
var reg = new RegExp("hello"); //最最经典的例程,你懂得
//现在我要匹配这个字符串 然后把结果用console.debug打出来
console.debug(reg.test("hello world!"));
//结果为true ,说明 字符串 hello world 可以被 正则 hello 所匹配
但如果hello 前后还有字符串呢? 比如 xxxxhellobbb ,这样 正则 hello 将无法匹配成功
正则提供了占位符 \b 它不代表任何字符,只起一个占位的作用,如果我这么写正则 \bhello\b 那么 无论 字符串前后有多少其他的字符 都可以成功匹配了
现在我们能匹配hello了,但world怎么办呢? 有人说 在正则里面加个空格然后写上world...对,这样是可以。但如果hello后面还有N个其他的字符串,如何去匹配world呢?
正则提供了几个元字符,".","*" , "." 匹配除了换行符外的所有字符,"*"不匹配任何字符,它的作用是代表数量,对 就是数量,无限的数量。
如果正则这么写 \bhello\b.*\bworld!\b 来尝试读一下这个正则表达式,不要觉得它长就被吓住了,完全没有必要。JQuery里面的正则 上百个字符!
占位符 字符串hello 占位符 所有的不限长度的字符串 占位符 字符串world! 占位符
觉得好理解么?不管你理不理解,反正我是理解了。
只要传进来的字符串能够符合这个条件,那么就能匹配成功。
比如 我传个 "hello xxx !!! sdsdjddjskdfkdkjworld!" 快试试 能成功不 嘿嘿
好好消化一下。多测试测试 动动手~~~