正则表达式 RegExp 对象

正则表达式 RegExp 对象

  • 概念:通过特定符号组成表达式,并通过该表达式匹配字符串。
  • 好处:方便搜索、匹配字符串。
  • 缺陷:匹配、搜索速度不高。(复杂的表达式,解析效率不高)
  • 主要用于搜索、验证、匹配(或特殊环境使用)
  • 写法:/ /

[ ]

方括号:括号里的内容任取其一

表达式:

  • abc查找方括号之间的任何字符。
  • ^abc 查找任何不在方括号之间的字符。
  • [0-9] 查找任何从 0 至 9 的数字。
  • [a-z] 查找任何从小写 a 到小写 z 的字符。
  • [A-Z] 查找任何从大写 A 到大写 Z 的字符。
  • (red|blue|green) 查找任何指定的选项。

匹配次数:

  • * 星号,匹配 0-n 次
  • + 加号,匹配 1-n 次
  • ? 问号,匹配 0-1 次
  • { } 花括号,指定匹配次数; {0,6}或{,6}——0~6次;{6,}——至少6次;{6}——只能6次

    let pattern=/c[abcd]t/;
    let str='cat';
    console.log(pattern.test(str));  // true;   test关键字,方法

完整匹配:/^...$/ ^:以^开头; $:以$结尾。

let pattern=/^c[abcd]+t$/;
let str='cat';
console.log(pattern.test(str));  // true;   

修饰符

  • i : 对大小写不敏感
  • // let pattern=/^c[abcd]+t$/i;
  • g : 全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

元字符

有特殊含义的字符

  • . 一个点,查找单个字符,除了换行和行结束符。

  • w查找单词字符(数字、字母、下划线)

  • W 查找非单词字符

  • d 查找数字。0-9

  • D 查找非数字字符

  • s 查找空白字符(空格、换行...)

  • S 查找非空白字符

  •  匹配单词边界

  • B 匹配非单词边界

  •  查找换行符

正则方法

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

    let pattern=/love/g;
    let str="I love Js,I love Js,I love Js";
    console.log(pattern.test(str)); //找到第一个love
    patt.lastIndex=0; // 重置上一次输出结果
    console.log(pattern.test(str));  //加上g,找到第二个love;不加上g,还是第一个love

    lastIndex:RegExp 对象属性;一个整数,标示开始下一次匹配的字符位置。

支持正则表达式的String对象的方法

  • split:把字符串分割为字符串数组。

    let patt=/love/g;
    let str="I love Js,I love Js,I love Js";
    console.log(str.split('')); 
    console.log(str.split(/s+)); 
  • search:检索与正则表达式相匹配的值。忽略g标记,只返回第一次匹配的值。

    let pattern=/love/g;
    let str="I love Js,I love Js,I love Js";
    console.log(str.search(patt)); 
  • match:找到一个或多个正则表达式的匹配。没有g,输出第一次匹配的值;加上g,所有匹配的值

    let pattern=/love/g;
    let str="I love Js,I love Js,I love Js";
    console.log(str.match(patt)); 
  • replace替换与正则表达式匹配的子串。加上g,全部换掉。

    let pattern=/love/g;
    let str="I love Js,I love Js,I love Js";
    console.log(str.replace(patt,'')); 

  正则表达式:多用于做验证、匹配、搜索;熟悉各种符号表达的含义,正则方法的使用;修饰符i/g使用后的变化

原文地址:https://www.cnblogs.com/llying/p/7528940.html