正则元字符

2.3 正则元字符

  • 单个字符串

    • “.”:匹配除换行符以外的任意一位字符

      // . : 匹配除换行符以外的任意字符  \n
      var str = "\nnihaoma\nimok";
      var reg = /./;
      console.log(reg.exec(str)); //[n index:1]
      
      var str = "webtt1116";//web??1116
      var reg = /web..1116/;
      console.log(reg.exec(str));//["webtt1116"]
      
    • [] : 匹配字符集中任意一位字符 数字:[0-9] 字母[a-z]

      // []:匹配字符集中的任意一位字符 [@#$%&] [0-9][a-zA-Z]
      var str = "0hahahah!";
      var reg = /[0-9A-Za-z]/g;
      console.log(reg.exec(str)); //0
      
    • [^] : 匹配除字符集中任意一位字符

      // [^]:匹配除字符集中的任意一位字符
      var reg = /[^a-z0-9]/;
      var str = "fsrww645#yry";
      console.log(reg.exec(str)); //#
      
    • \d : 匹配数字

    • \D : 匹配非数字

      //\d:匹配一位数字  \D:匹配一位非数字
      var reg = /\d\d\d\d\d\d/;
      console.log(reg.exec("123")); //null
      
    • \w : 匹配数字、字母、下划线

    • \W : 匹配非数字、字母、下划线

      //\w:匹配数字字母下划线  \W:匹配非数字字母下划线
      //匹配账号   5位,数字、字母、下划线组成
      var str = "txf_1"
      var reg = /\w\w\w\w\w/;
      console.log(reg.exec(str)); //["txf_1"]
      
    • \s : 匹配空格

    • \S : 匹配非空格

      //\s:匹配空格    \S:匹配非空格
      var str = "          hello world!          ";
      var reg = /\s/g;
      console.log(str.replace(reg,"")); //helloworld!
      
    • ^a : 以。。开头

    • a$ : 以。。结尾

      // ^: ^a:以a开头     $:  a$ : 以a结尾
      var str = "666666";
      var reg = /^\d\d\d\d\d\d$/;
      console.log(reg.exec(str)); //"666666"
      
  • 多个字符

    • a? : 匹配前面的字符0次或1次

      //? a?:匹配前面的字符0次或1次
      var str = "https://www.baidu.com";
      var reg = /https?:\/\/www.baidu.com/;      //转义 
      console.log(reg.exec(str));
      
    • a*:匹配前面的字符0次或多次

      //* a*:匹配前面的字符0次或多次
      var str = "https://www.baidu.com";
      var reg = /https*:\/\/www.baidu.com/; 
      console.log(reg.exec(str));
      
    • a+ : 匹配前面的字符至少一次

      //+ a+ : 匹配前面的字符至少一次
      var str = "https://www.163.com";
      var reg = /^https?:\/\/www\.\w+\.com$/;
      console.log(reg.exec(str));
      
    • {n,m} : 匹配至少n,最多m次

      //{n,m} : 匹配至少n,最多m次
      //{n} : 匹配n次
      var reg = /^1[3-9]\d{9}$/;
      
      //{n,} : 匹配至少n次
      var str = "https://www.163.com";
      var reg = /^https?:\/\/www\.\w+\.[a-zA-Z]{2,}$/;
      
      //{n,m} : 匹配至少n,最多m次
      //匹配QQ,最少5位,最多11位
      var reg = /^\d{5,11}$/
      
    • 注意:量词不能重叠使用

      //量词不能重叠使用
      var reg = /a?*+/;
      console.log(reg);
      
  • 分组()

     //():分组
    var str = "http://www.ujiuye.org"
    var reg = /(http|https):\/\/www\.\w+\.(com|cn|net|edu|org)/;
    console.log(reg.exec(str)); //["http://www.ujiuye.org", "http", "org"]
    console.log(RegExp.$1); //http
    console.log(RegExp.$2); //org
    
    var str = "hello world";
    var reg = /(hello) (world)/;
    console.log(str.replace(reg,"$2 $1")); //world hello
    
  • 或|

 //|
//验证网址    com cn  net  edu org 
var str = "http://www.ujiuye.org";
var reg = /^https?:\/\/www\.\w+\.(com|cn|net|edu|org)$/;
console.log(reg.exec(str)); //"http://www.ujiuye.org",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值