• js 正则表达式


    1.^和 $

    • ^ 以什么元字符开始
    • $ 以什么元字符结尾
    • ^和$ 两个都不加:字符串中包含符合规则的内容即可
    • ^/$ 两个都加:字符串只能是和规则一致的内容
    • \d 匹配所有数字
    1.1 匹配 以数字开头的字符串
    let reg = /^\d/;
    console.log(reg.test('name'));   //false
    console.log(reg.test('2020name'));  //true
    console.log(reg.test('name2020'));   //false
    
    • 1
    • 2
    • 3
    • 4
    1.2 匹配 以数字结尾的字符串
    let reg = /\d$/;
    console.log(reg.test('name'));   //false
    console.log(reg.test('2020name'));  //false
    console.log(reg.test('name2020'));   //true
    
    • 1
    • 2
    • 3
    • 4
    1.3 匹配 带数字的字符串
    let reg = /\d/;
    console.log(reg.test('name'));   //false
    console.log(reg.test('2020name'));  //true
    console.log(reg.test('name2020'));   //true
    
    • 1
    • 2
    • 3
    • 4
    1.4 严格匹配
    // 以数字开头,数字结尾,\d表示只有一个数字
    let reg = /^\d$/;
    console.log(reg.test('2'));   //true
    console.log(reg.test('21'));   //false  如果是/^\d+$/的话,则为true
    
    • 1
    • 2
    • 3
    • 4

    2. 转义字符 \

    2.1 ‘.’ 是代表除换行符之外的任意字符,而不是小数点let
    // 这里表示在2和3之间有一个任意字符
    reg = /^2.3$/; 
    console.log(reg.test('2.3')); //true
    console.log(reg.test('2@3')); //true
    console.log(reg.test('23')); //false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    2.2 现在我们把‘.’变为一个普通的小数点(在.前面加上转义字符\)
    // 这里.就是表示.
    let reg = /^2\.3$/;
    console.log(reg.test('2.3')); //true
    console.log(reg.test('2@3')); //false
    
    • 1
    • 2
    • 3
    • 4
    2.3 {n,m}

    它是代表前面的元字符出现 n 到 m 次

    //这个正则匹配的是数字出现2到4次即可,明显第三个超出了,应该返回false,但是结果却是true,但是加上^$ 就不一样了
    let reg = /\d{2,4}/;
    reg.test('1');  //false
    reg.test('14'); //true
    reg.test('123456'); //true
    //加上^$ 之后的结果:这个就代表只能有2-4位数字,超过就多余,而上一个匹配的是只有字符串中出现2-4次即可,因此加上^$ 更加严谨
    let reg = /^\d{2,4}$/;
    reg.test('1'); //false
    reg.test('14'); //true
    reg.test('123456'); //false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.4 x|y

    x 或 y:直接 x|y 会存在优先级问题,一般配合小括号进行分组使用,因为小括号改变处理的优先级 => 小括号:分组

    //匹配的是:以18开头或者以29结尾的都可以,以1开头以9结尾,8或2都可以,所以不加括号怎么理解都可以
    //以下的匹配结果都为true
    console.log(reg.test('18'));
    console.log(reg.test('29'));
    console.log(reg.test('129'));
    console.log(reg.test('189'));
    console.log(reg.test('1829'));
    console.log(reg.test('182'));
    
    //以上不加括号我们可以有很多理解方式都是对的,但是我们加上括号,就不可能想上面那样理解了;
    //匹配的是:18或者29中的一个,其余都是false
    let reg = /^(18|29)$/;
    console.log(reg.test('18'));
    console.log(reg.test('29'));
    console.log(reg.test('129'));
    console.log(reg.test('189'));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    2.5 []
    • 中括号中出现的字符「一般」都代表它本身的含义(会消磁,把他本身的意义都消除掉了)
    • \d 在中括号里面的含义仍然是 0-9,这个没有消磁
    • [18]:代表的是 1 或者 8 中的任意一个
    • [10-29]:代表的是 1 或者 9 或者 0-2

    下面的‘.’就是小数点的意思

    //下面的‘.’就是小数点的意思
    let reg = /^[.]+$/;
    
    • 1
    • 2
    • 匹配的含义是:\d还是代表0-9
    let reg = /^[@+]$/; 
    console.log(reg.test('@')); //true
    console.log(reg.test('+')); //true
    console.log(reg.test('@@')); //false
    console.log(reg.test('@+')); //false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 匹配的含义是:1或者8
    let reg = /^[18]$/;
    console.log(reg.test('1')); //true
    console.log(reg.test('8')); //true
    console.log(reg.test('18')); //false
    
    • 1
    • 2
    • 3
    • 4
    • 匹配的含义是:1或者0-2或者9
    let reg = /^[10-29]$/;
    //匹配的含义是:1或者0-2或者9或'('或')'
    let reg = /^[(10-29)]$/;
    
    • 1
    • 2
    • 3
  • 相关阅读:
    浅谈@PostConstruct注解
    基于springboot+vue的贫困地区留守儿童资助关怀网站 elementui
    微视网媒:新媒体时代的宣传与营销新范式
    【CSDN竞赛】第十期解题报告
    第十二章网络管理
    iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
    查找DOM,受控与非受控组件
    centOS 7 离线安装 MySQL 5.6 完美安装
    扩散模型diffusion model 代码解读
    Mysql 查询表参考
  • 原文地址:https://blog.csdn.net/qq_38868959/article/details/133182525