JS基础知识day15 - 正则表达式

正则表达式:

字符串的校验(验证)

正则的创建:

        字面量创建 /匹配的字符串/

        实例化对象 new RegExp('匹配的字符串')

        // 双斜杠  --- 判断字符串中是否有字符能匹配 good
        const reg1 = /good/ ;

        // regular expression 简写
        // 实例化对象
        const reg2 = new RegExp('good') ;

        console.log(reg1 , reg2);

正则的修饰符

        i (ignore 忽略大小写)

        g (global 全局匹配)

        // i   ignore  忽略大小写
        const reg1 = /tmd/i ;


        // g  global  全局匹配  
        const reg2 = /tmd/g ;


        // 构造函数的第一个参数表示匹配的字符,第二个参数表示修饰符
        const reg3 = new RegExp('tmd' , 'gi') ;

正则的方法

           test()  返回布尔值

           exec()  返回的是一个数组 --- 总是匹配一个 , 如果匹配不到就返回null

        // test正则的方法  测试字符串中是否有匹配正则的内容  -- 布尔值   一般此正则不需要全局匹配
        console.log(reg.test(str));


        // 返回的是一个数组 --- 总是匹配一个 , 如果匹配不到就返回null
        console.log(reg.exec(str));


        // null   false
        // []     true !!!!!!!!
        console.log(Boolean([]));

正则的语法

          |   或者

          []  或者(区间)   [0-9] [1-9]  [a-z]  [A-Z]  [0-9a-zA-Z]  

          空格也会被匹配  --- 一般正则不写空格

正则的元字符  

次数匹配:

          *  0次或者多次    {0 , }

          ?  0次或者1次    {0 , 1}

          +  1次或者多次   {1 , }

          {m , n}  m次到n次

          {m , }   至少m次

          {m}  m次

          ^  以...开头

          $  以...结尾

^ $  同时使用可以把正则规定死


.  匹配任意字符

中文匹配         [\u4e00-\u9fa5]

转义使用  \

        // 匹配 \/
        const reg = /\\\// ;

        // 匹配 .
        const reg2 = /\./ ;

        // 匹配 [
        const reg3 = /\[/ ;

        console.log(reg2.test('hq'));

        // + ? *  {}  匹配的次数,需要前面有匹配的东西
        const reg4 = /\+/ ;
        console.log(reg4.test('1+1'));

        \d 数字

        \D  非数字

        \w  数字,字母,下划线  [0-9a-zA-Z_]

        \W  非数字,字母,下划线

        \s  匹配空白字符

        \S  匹配非空白字符

           空白字符和空字符不一样

           空字符  .{0}

 

能接受正则的方法

          replace(要查找的,替换的)  默认只会替换一次,因此需要正则

          search()  一般和indexOf是一样的,但是search还可以接受正则

          match()  找到满足条件的字符,默认只会找到第一个,全局匹配才能找到所有的,如果找不到就返回null

          split()  把字符串切割成数组,也可以接受正则的写法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值