正则表达式

1.元字符

  • . ^ :匹配字符串的开始
  • . $: 匹配字符串的结束
    // 匹配开始和结尾,字符串必须以w开头,以2结尾,中间是eb02
    var reg = /^web02$/;
  • . .:任意字符 .
  • . \w: 字母、数字、下划线
  • . \s :任意空白字符
  • . \d:匹配数字,等同于[0-9]
  • . \D:匹配非数字,等同于[^0-9]
  • . |:或匹配,如 /x|y/ 正则可匹配x或y两个字符
  • . [abc]: 表示 包含里面的任意一个

反义符

  • . [^x] 匹配除“x”之外的所有字符,其中“x”可以为任意字符
  • . [^xyz] 同上,匹配除“x、y、z”之外的任意字符
    // .匹配任意字符
    var reg1 = /^b..k$/;   // 以b开头,以k结尾,中间有2个字符(任意) 
    var str1 = 'book';    // 
    var str2 = 'boook'    // 

    // \w 匹配一个字符(数字,字母或下滑线的一种)
    var reg2 = /^t\wq$/;   // 以t开头,一个字(上面三种中的一个),以q结尾
    var str1 = 't2q';
    var str2 = 't2wq';

    // \s空格
    var reg = /java\sscript/;
    var str = 'study java script'; // 
    var str = 'study javascript';  // 

    // \d匹配数字 \D非数字
    var reg = /\Dook/;
    var str = '8ook';  // 

    // | 或 
    var reg = /^1(3|4|5|6|7|8)\d\d\d\d\d\d\d\d\d$/;
    var str1 = '18800000000';
    var str2 = '12800000000'

    // [abc] 代表一个字符,字符只能是abc中的一个
    var reg = /^1[345678]\d\d\d\d\d\d\d\d\d$/;
    var str1 = '18800000000';  //
    var str2 = '12800000000';  // 

    var reg = /^[^xyz]...$/;  // 
    var str = '1234';  //
    var str = 'x234';  //

重复匹配

  • . ? 重复出现零次或一次
  • . + 重复出现一次或多次
  • . * 重复出现零次或多次
  • . {n} 重复出现n次
  • . {n,} 至少重复出现n次
  • . {m,n} 重复重现m到n次,其中,m<n
    // ?0到1次,+1到多次,*0到多次
    var reg = /^bo?k$/;    // b开头,0个或者1个o,以k结尾
    var str = 'bok';
    var str = 'book';

    var reg = /^bo+k$/;   // b开头,1个或多个o,k结尾
    var str = 'bok';
    var str = 'booooooooook';

    var reg = /^bo*k$/;   //b开头,0个或多个o,k结尾


    // {n}重复n次, {m,n} 最少重复m次,最多重复n次
    var reg = /^bo{2}k$/;   // 匹配book  2个o
    var reg = /^1[3,4,5,6,7,8]\d{9}/;

分组

  • . 用括号分组
  • . 分组的应用
    // 日期的匹配  2000-1-11   \1 对第一个括号的重复
    var reg = /^\d{4}(\-|\.)\d{1,2}\1d{1,2}$/;


    // 应用
    var reg = /(.*)(程序员)(.*)/;
    var str = '我是web前端程序员,我来自深圳';

    console.log(reg.test(str));   //
    // 将程序员替换成攻城狮
    var newStr = str.replace(reg, '$1攻城狮$3');
    console.log(newStr);


    var phone = '15013795539';
    var reg = /(\d{3})\d{4}(\d{4})/;
    var newPhone = phone.replace(reg, '$1****$2');
    console.log(newPhone);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容