JS-正则表达式对象/RegExp

正则表达式对象/RegExp

创建正则表达式

  1. 隐式创建

        let regx = /正则表达式/修饰符  --->  /pattern/attributes
        //  pattern(正则表达式) 是一个字符串,指定了正则表达式的模式或其他正则表达式。
        /* attributes(修饰符)  
            i:  执行对大小写不敏感的匹配。(忽略大小的匹配)
            g: 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
            m: 执行多行匹配。  (用的很少,基本不会被用到)
    
        //书写修饰符的时候 没有顺序要求  igm img gim 都一样   一般我们都只使用ig 
  2. 显示创建

    let regx = new RegExp(pattern, attributes);
        //  pattern(正则表达式) 是一个字符串,指定了正则表达式的模式或其他正则表达式。
        // attributes(修饰符)
        // 注意:在使用显示创建正则表达式的时候注意使用元字符的时候要记得转移"\d{4}"
     

正则表达式的属性

/*
    正则表达式的属性:
        1 global / RegExp对象是否具有标志 g
        2 ignoreCase / RegExp 对象是否具有标志 i
        3 multiline / RegExp 对象是否具有标志 m
        4 lastIndex / 一个整数,标示开始下一次匹配的字符位置
        5 source / 正则表达式的源文本
*/

正则表达式的方法

/*
    正则表达式的方法:
        1 compile()
        2 exec()
        3 test()   
*/

//compile() 编译正则表达式

    regx.compile(/[A-Z]/g);
    regx = /[A-Z]/g;
    //当我们需要重新设置匹配模式的时候,可以直接给正则表达式赋值 或则使用 它的compile();
    //重新设置新的匹配模式时,它的lastIndex属性会重置为0(重新从字符串的头一个位置开始)


//exec() 检索字符串中指定的值。返回找到的值,并确定其位置

    while(result = regx.exec(String)){     
        console.log(result[0]);
        //result[0]取出匹配当前正则表达式的字符创的值
    }
    //exec()执行一次后,lastIndex会指向符合当前正则表达式的字符创的下一个字母的位子
    //exec() 如果找到有值表示 true ;如果没有找到 返回null 表示false
    //exec() 多用于查询一段字符中符合正则表达式的字符串 可能执行多次

//test() 检索字符串中指定的值。返回 true 或 false

    if(regx.test(String)){ }
    //test()多用于 接收前页面据判断是否合法,在执行牟宗操作

正则表达式的量词

//量词: 就是用表示数量的语法
    a{X}    //表示匹配连续的X个a字母

    a{X,Y}    //表示的最少x个连续的a, 最多y个连续的a

    a{X,}    //至少出现 x次.. 
    
    //量词是表示紧挨着它的那个字符的次数。
        //例如: /ax{3,5}/ 表示的是 x出现的次数  不是ax次数
    // 如果要连续使用 例如(ax)两个字符一起出现的次数 则需要给他们分在一个组(使用括号)里面 
        //写法为:(ax){3,5} //axaxax axaxaxax axaxaxaxax


    n+    //+表示:1个或多个      ==> n{1,}的简写
        //let regx = /ax+/ig;  // ax axx axxxx axxxx axxx.....
        
    n*  //*表示 0个或则多个     ==> n{0,}的简写
        //let regx = /ax*/ig;  // a ax axx axxx axxxx axxxx.......
        
    n?     //?表示 0个或则1个      ==> n{0,1}的简写
        //let regx=/ax?/ig;  // a ax 
      
    
    
    ^     //以什么开头
        //let regx = /^ab+/ig  //以字母a开头后面有1个或则多个b
    $     //以什么结尾

        //如果 开头和结尾一起使用则表示整个字符创要符合正则表达式 就没用必要使用 g 



    ?=n     //量词匹配任何其后紧接指定字符串 n 的字符串。
        //let regx = /stu(?=id)/ig;

    ?!n     //匹配任何其后 不是 紧接指定字符串 n 的字符串。
        //let regx = /stu(?!id)/ig;

    
      
    ()    //分组
      
    |    //或则
        let regx = /^(ab)|(ac)d{3}/ig; 
        //分组为  /^ab/  或则  /acd{3}/

    &    //

    []    //方括号 用于查找某个范围内的字符:  [0-9]  ==>>   [0123456789] 
        //注意:  如果^ 是写在方括号[]里面的话  它表示:取反   
        //[^abc]     表示:不是a,或则 b 或则c   
    
    //只能是数字的的 三种表示均可
        let regx=/(0|1|2|3|4|5|6|7|8|9){3}/ig;   
        let regx=/[0123456789]/ig;   
        let regx =/[0-9]/ig;

正则表达式元字符

元字符描述元字符描述
. 查找单个字符,除了换行和行结束符 . 小数点
w 查找单词字符[A-Za-z0-9_] W 查找非单词字符
d 查找数字字符 D 查找非数字字符
s 查找空白字符 S 查找非空白字符
 匹配单词边界 B 匹配非单词边界
查找 NUL 字符 查找换行符
f 查找换页符 查找回车符
查找制表符 v 查找垂直制表符
xxx 查找以八进制数 xxx 规定的字符 xdd 查找以十六进制数 dd 规定的字符
uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符    
原文地址:https://www.cnblogs.com/-Archenemy-/p/12483965.html