正则表达式教程

  1. 正则表达式定义

    • 正则表达式是用来检索字符串是否有匹配规则的一个js对象
  2. 正则表达式应用

    • 正则表达式主要用在登录和注册表单里面,针对用户输入的数据进行验证
  3. 正则表达式创建
    //第一种方式
    var exeg=new RegExp(“检索内容”,“修饰符”)
    //第二种方式
    var exeg=/检索内容/修饰符;

  4. 正则表达式的使用
    //第一种方式
    var str=“hello wolrd”;
    var exeg=new RegExp(“e”);
    console.log(exeg.test(str))//查找字符串中是否有e字符,有则返回true,无则返回false
    console.log(exeg.exec(str))//查找字符串中是否有e字符,有则返回所在索引,无则返回-1
    console.log(exeg.compile(/abc/))//使用abc修改原有正则表达式e

    //第二种方式
    var str="hello wolrd";
    var exeg=/e/;
    console.log(exeg.test(str))//查找字符串中是否有e字符,有则返回true,无则返回false
    console.log(exeg.exec(str))//查找字符串中是否有e字符,有则返回所在索引,无则返回-1
    console.log(exeg.compile(/abc/))//使用abc修改原有正则表达式e
    
  5. 正则表达式语法

    • 修饰符

      • i:忽略大小写
        var str=“hello wolrd”;

        var exeg=/E/;
        console.log(exeg.test(str))//false
        
        var exeg=/E/i;
        console.log(exeg.test(str))//true
        
      • g:全局匹配
        var str=“hello wolrd”;

        var exeg=/o/;
        console.log(str.match(exeg))//o
        
        var exeg=/o/g;
        console.log(str.match(exeg))//o  o
        
      • m:多行匹配
        var str=/hello\nwolrd/;

        var exeg=/^w/;
        console.log(exeg.test(str))//false;
        
        var exeg=/^w/m;//因为\n是换行符,而w字符处于第二行的开头
        console.log(exeg.test(str))//true;
        
    • 元字符

      • ^:在正则中表示以什么开头,在集合中表示除了集合之内的
        var exeg=/^a/;

        var str="abcd";
        console.log(exeg.test(str))//true
        
        var str="babcd";
        console.log(exeg.test(str))//false
        ------------------------------------------------------------------------
        var exeg=/[^abcd]/;
        
        var str="abcde";
        console.log(exeg.test(str))//true,字符e不在集合以内,所以符合
        
        var str="babcd";
        console.log(exeg.test(str))//false
        
      • : 在 正 则 中 表 示 以 什 么 结 尾 v a r e x e g = / a :在正则中表示以什么结尾 var exeg=/a :varexeg=/a/;

        var str="abcda";
        console.log(exeg.test(str))//true
        
        var str="babcd";
        console.log(exeg.test(str))//false
        
      • |:表示或,任何一个条件成立。
        var exeg=/hello|wolrd/;

        var str="hello word";
        console.log(exeg.test(str))//true,匹配hello
        
        var str="hell world";
        console.log(exeg.test(str))//true,匹配world
        
      • .:任意字符
        var exeg=/./;

        var str="hello word";
        console.log(exeg.test(str))//true,
        
        var str="1234566";
        console.log(exeg.test(str))//true,
        
      • :表示转译
        var exeg=/./;
        备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
        var str=“helloword”;
        console.log(exeg.test(str))//false,因为没有点

        var str="hell.world";
        console.log(exeg.test(str))//true,有点
        
      • \d:表示0-9的数字字符
        var exeg=/\d/;
        备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
        var str=“helloword”;
        console.log(exeg.test(str))//false,因为没有数字

        var str="hell3world";
        console.log(exeg.test(str))//true,有数字3
        
      • \D:非数字字符
        var exeg=/\D/;
        备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
        var str=“helloword”;
        console.log(exeg.test(str))//true,因为没有数字

        var str="hell3world";
        console.log(exeg.test(str))//true,因为除了3之外还有别的英文字符
        
      • \w:表示单词字符
        var exeg=/\w/;
        备注:单词字符不含字母,数字和下划线
        var str=“helloword”;
        console.log(exeg.test(str))//true,因为没有数字

        var str="hell3world";
        console.log(exeg.test(str))//true,因为除了3之外还有别的英文字符
        
      • \W:表示非单词字符
        var exeg=/\W/;

        var str="helloword";
        console.log(exeg.test(str))//false,因为没有数字
        
        var str="hell3world";
        console.log(exeg.test(str))//false,因为除了3之外还有别的英文字符
        
      • \s:表示空白符
        var exeg=/\s/;

        var str="hello word";
        console.log(exeg.test(str))//true,因为有空格
        
        var str="hell3world";
        console.log(exeg.test(str))//false,
        
      • \S:非空白符
        var exeg=/\S/;

        var str="helloword";
        console.log(exeg.test(str))//true,因为有空格
        
        var str="hell3world";
        console.log(exeg.test(str))//true,
        
    • 量词

      • +:至少匹配一次
        var str=“helloword”;

        var exeg=/el+o/;
        console.log(exeg.test(str))//true,因为有连续两个ll
        
        var exeg=/^el+o$/;
        console.log(exeg.test(str))//false,因为字符串不是以e开头,
        
      • *:匹配零次或者多次
        var str=“heoword”;

        var exeg=/el*o/;
        console.log(exeg.test(str))//true,因为l可以不出现
        
        var str="helloword";
        var exeg=/el*o/;
        console.log(exeg.test(str))//true,因为ll可以有多个
        
      • ?:匹配零次或者1次

        var str="heoword";
        
        var exeg=/el?o/;
        console.log(exeg.test(str))//true,因为l可以不出现
        
        var str="helloword";
        var exeg=/el*o/;
        console.log(exeg.test(str))//false,因为ll不可以有多个
        
      • {}

        • {x,}
          var str=“heoword”;

          var exeg=/el{1,}o/;
          console.log(exeg.test(str))//false,因为l至少出现一次
          
        • {x,y}
          var str=“helloword”;
          var exeg=/el{1,3}o/;
          console.log(exeg.test(str))//false,因为l可以有1-3个

    • 分组和$n
      var str=“hello wolrd”;

      var exeg=/^hello|world$/;
      console.log(exeg.test(str))//true
      
      var exeg=/^(hello)|world)$/;
      console.log(exeg.test(str))//false
      
      
      var exeg=/^(\w)\s(\w))$/;
      console.log(str.replace(exeg,"$2 $1"))//world  hello => $1=hello  $2=world
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如鹰展翅上腾

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值