• 正则表达式


    正则表达式在我们做写js逻辑判断的时候常常用到。和大家分享一下,有什么问题可以私密我。

    首先是正则表达式的声明。

    var str = 'dKJd6DKj69ds dklj6dLL/SE659lds';
    var
    reg = /d/; //这种声明方法一定要将两个"/"分开来,在两个"/"之间写的是检索的内容,类似于我们引号的写法;
    var reg=new RegExp('d');
     //正则表达式也可以看作是一个对象
    			

    方法的使用:

    console.log(reg.test(str)); //test()方法,返回值为boolean值, "字符串".test(reg);
    console.log(reg.
    exec(str)); //用来检索字符串中指定的值,返回的结果如果能找到指定的值,那么结果就是我们检索的字符串,如果找不到,返回的结果为null;
    console.log(str.match(reg));//match()方法,返回值为匹配的数组对象。使用typeof()检测类型为object。
    //同时可以使用console.log(str.match(reg)[0])得到对应的值,可以看出匹配到的类型是数组类型。

    正则表达式的类型(参数的使用)

    (1)正则表达式的参数常用的有两个,分别是i和g;

           i :表示的是不区分大小写的匹配;

           g :表示的是全局匹配;

    var reg = /d11/gi; 
    
    var reg1=new RegExp('d','gi'); 
    //多个参数一起使用,参数与参数之间是可以直接连写,不需要用其他的字符来分隔的;

    (2)search()

    var part = /hello/gi;
    
    var str = 'charles,hello,hello,world!';
    
    console.log(str.search(part));
    
    //search()方法:查找检索的字符串在原字符串中的位置,返回的结果是一个数值,如果存在,则返回具体的位置,如果不存在,则返回值-1;这与我们前面学的内置对象中的字符串对象的indexOf()方法一致;记住是从第0个开始算的
    			

       

    (3)replace()

    var reg = /d/gi;  //所有数字
    			
    console.log(str.replace(reg,"#"));
    
    //替换对应规则的字符串为#
    			

       

    (4)[]表示在这个范围内

    var reg = /[d-k]/gi;   //表示字母d到k之间的字符,同时也支持数字如 [0-9]
    			
    var reg = /[^d-k]/gi;   //^表示不包含
    			
    var reg = /[djkp]/gi;  //表示指定的字符串
    			

       

    (5)|表示或者的意思,不是||哦

    var reg = /[d]|[k]/gi; 
    

       

    (6).号只能代替一个字符

    var reg = /d.jd/gi;  //搜索d*jd字符串
    			

    (7)$ 表示以什么结尾,^表示以什么开头

    var reg = /4$/gi;  //表示以4结尾的字符串
    var reg = /^4/g; //表示以4开头,与其他的如[^4-8]就表示非的意思,非4到8的区间
     
    var reg = /[^4]/g //在[]里面^代表非
    var reg = /er+/gi; //+,*表示r出现一次或者一次以上,想要表示[er]
    			
    var reg=/er{2}/gi //表现r连续出现两次,可匹配errerrr
    			

       

    (8) ?

    首先要知道什么是贪婪模式,如果/4+/g表示匹配出现一次或者一次以上的4,匹配字符串'45544554445',结果有3个,加问号/4+?/g,他就没那么贪婪,能短的就短了,结果就有7个了。

    当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

    (9)

          w表示的是查找单词字符;而W表示的是查找非单词字符;

                  d表示的是查找数字;D表示查找非数字;

                  s表示的是查找空白字符;S表示查找非空白字符;

                  表示的是匹配单词边界;B表示匹配非单词边界;

          

    (10) var s='1112131415';

       (?:)   表示匹配但不获取结果集   /1(?:1|2|3)/g 匹配11、12、13但是不显示结果1112131415

      (?=)表示匹配固定的模式结果  /1(?=1|2|3)/g  匹配11、12、13显示结果1112131415

      (?!) 表示匹配非固定模式结果  /1(?!1|2|3)/g 不匹配11、12、13显示结果 1112131415

    (11)、*,{n,m}

         *表示出现0次或者以上,{n,m}代表出现n次以上,m次以下,{n}表示出现n次或者以上

    (12)、括号()

    表示在 .. 内

    (13)、正则调试工具:

    https://regex101.com/

  • 相关阅读:
    快速排序就这么简单
    Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
    SpringDataJPA入门就这么简单
    递归就这么简单
    SpringBoot就是这么简单
    Activiti就是这么简单
    Lucene就是这么简单
    过来人告诉你,去工作前最好还是学学Git
    给女朋友讲解什么是Git
    我终于看懂了HBase,太不容易了...
  • 原文地址:https://www.cnblogs.com/lq625424841/p/6874912.html
Copyright © 2020-2023  润新知