正则表达式

老子叫甜甜 提交于 2020-01-09 00:03:51

创建正则表达式:

    字面量创建: var reg = /a/g;

    构造函数创建: var reg = new RegExp("a","g");

 

修饰符:

    i :  不区分大小写   g:  全局 从头查找   m:  多行匹配

 

正则方法:

    test(): 判断是否满足正则,不满足返回false

    exec(): 查找字符串是否满足正则,返回 一个数组,这个数组只有一个元素,包括几个属性:分别是群组,索引,字符串自身

 

字符串中的方法:

    replace() :  第一个参数为正则,第二个可以是字符串,也可是函数。将正则匹配的内容替换后面一个参数的内容

    mach():  参数为正则,返回匹配正则的数组,没有为null,如果有群组,但是不加全局,则会会返回找到的元素外,还会返回群组的元素

    search(): 返回第一个匹配项的索引,没有返回-1

    splict(): 第一个参数可以是字符串,也可以是正则 第二个参数可选,匹配个数

 

元字符:

    .    :  可以匹配任意一个字符

    ^  : 在  [  ]  中第一位使用^,表示^除了后面所有的字符都满足,不是第一位表示字符^

    \w : [a-zA-Z0-9_]

    \W : [^a-zA-Z0-9_]

    \s  : 空白字符(空格)

    \S  : 非空白字符

    \n  : 换行

    \r   : 回车

 

重复: 

   {n,m} :贪婪匹配,先匹配最大的

   {0}  :表示空字符 

   ? : {0,1}

    +  : {1,}

    *  :  {0,}

    /  a {2,5} ?  /        在匹配后面加? 表示非贪婪匹配 例如 .+?  或者 .*?

 

起始、结束:

  ^$  

 

群组:

  

1         var str="18617891076".match(/(\d{3})(\d{4})(\d{4})/).slice(1).reduce(function(value,item,index){
2 
3             return index===1 ? value+"****" : value+item;
4 
5         })

可以简写为:

        var str="18617891076".replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3");
        console.log(str);

断言:

  ?<=  前置等于  ?<! 前置不等于    ?= 后置等于  ?! 后置不等于

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!