web前端javaScript笔记——(10)正则表达式

正则表达式的简介


    
    
       
    
    
    
   



正则表达式的语法


    
    
       
    
    
    
   


   
    



    
    
       
    
    
    
   


   
    

/*正则表达式语法*/
        /*量词:
                 通过量词可以设置一个内容出现的次数
                 量词只对它前面的一个内容起作用
                 {n}正好出现n次
                 {m,n}出现n-m次
                 {m,}出现m次以上
                 + 出现至少一个,相当于{1,}
                 * 表示出现0个或多个,相当于{0,}
                                         ?  表示出现0个或1个,相当于{0,1}
                 */
        var reg=/a{3}/;
        console.log(reg.test("aaaabc")); //true
        reg=/ab{3}/;
        console.log(reg.test("abbb"));//true
         reg=/(ab){3}/;
        console.log(reg.test("abbb"));//false
         console.log(reg.test("ababab"));//true
         reg=/ab{3}c/;
         console.log(reg.test("abbbc"));//true
         reg=/b{3}/;
         console.log(reg.test("bbbb"));  //true
         reg=/ab{1,3}c/   //b出现1-3次
         console.log(reg.test("abbc"));//true
         //+ 出现至少一个,相当于{1,}
         reg=/ab+c/;
         console.log(reg.test("abbc"));//true
         //*表示出现0个或多个,相当于{0,}
         
         /*检查一个字符串中是否以a开头/^a/
           ^表示开头,^a表示以a开头,和[^a]完全不一样,[^a]表示除了a
           $表示结尾,$a表示以a结尾,/$a/
                          如果在正则表达式中同时使用^ $则要求字符串必须完全符合正则表达式
           /^a|a$/以a开头或者是以a结尾
          * */
         reg=/^a/;
         console.log(reg.test("abac"));   //true
         reg=/^a$/   //同时以a为开头和结尾,只能有一个a
         console.log(reg.test("a"));     //true
         console.log(reg.test("aaa"));    //false
         
         /*创建一个正则表达式,用来检查一个字符串
                        手机号的规则:
            1 3 567890123(11位)
            1.以1开头
            2.第二位3-9任意数字
             3.三位以后任意数字9个
             ^1 [3-9] [0-9]{9}$
          * 
          * */
         var phoneStr="13567890123";
         var phoneReg=/^1[3-9][0-9]{9}$/
         console.log(phoneReg.test(phoneStr));//true 
         
         /*检查一个字符串中是否含有.  /\./
          .表示任意字符检查任意字符,除了换行和结束字符
                       在正则表达式中使用\作为转义字符
                       \.来表示.
                       \\表示\
                       
                       
          * 
          * */
        var reg=/./;
        console.log(reg.test("abc.bcd"));     //true
        var reg=/\./;
        reg=/\\/;
        console.log(reg.test("b.\\"));   //true
        /*注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符
                          如果要使用\则需要使用\\来代替*/
                         
        reg=new RegExp("\.");
        console.log(reg.test("!@#!@#!")); //true
        
        /*
         \w     任意字母、数字、_  [A-z0-9]
         \W     除了字母、数字、下划线   [^A-z0-9_]
         \d     任意的数字[0-9]
         \D     除了数字[^0-9]             reg=/\D/
         \s     空格
         \S     除了空格                                            reg=/\S/
         \b     单词边界
         \B     除了单词边界
         * */
        reg=/\bchild\b/;
        console.log(reg.test("hello children"));  //false
        
        var str="                hello                 ";
        //去掉字符串中的空格
        //去掉空格就是使用""来替换空格
        console.log(str); //"                hello                 "
        str=str.replace(/\s/g,"");  //不写全局匹配模式的话只能去掉一个
        console.log(str);  //"hello"
        
         var str="                he     llo                 ";
        //去掉开头的多个空格
        str=str.replace(/^\s*/,"");   //去掉开头的多个空格
        str=str.replace(/\s*$/,"");   //去掉结尾的多个空格
        //也可以写为
        str=str.replace(/^\s*|\s*$/g,"");   //g为全局匹配模式
         str=str.replace(/^\s+|\s+$/g,"");   //用+效果是一样的
          console.log(str); //"he     llo"
        
/*电子邮件
         [email protected]
                     任意字母数字下划线  .任意字母数字下划线@ 任意字母数字    .任意字母(2-5位) .任意字母(2-5位)
         \w{3,}  (\.\w+)*  可有可无  @ [a-z0-9]+ (\.[A-z]{2,5}){1,2}整体出现一到两次
         
         * 
         * */
        var emaiReg=/^\w{3,}(\.\w+)*@[a-z0-9]+(\.[A-z]{2,5}){1,2}$/;
        var email="[email protected]";
        console.log(emaiReg.test(email));   //true

你可能感兴趣的:(前端,javascript,正则表达式)