正则表达式

**正则的作用:**测试文本,匹配文本的,匹配串中的子窜或者取出符合某个条件的字串

非打印字符描述
\cx匹配键盘的 c 代表 A-Z a-z 子符
\f匹配换页符
\n匹配换行符
\r匹配回车符
\t匹配制表符
\s匹配的是任何空白字符 等价[\f\r\n\v\t]
\S匹配任何非空白字符 等价[^\f\r\t\n\v]

特殊字符(具有特殊含义的字符 要查)

$匹配表达式的结尾 如果套匹配$符号 $
()标记子表达式的开始和结尾 如果要匹配() ( )
*指匹配前面的子表达式 0次或者多次 如果要匹配* *
+指匹配前面的字表达式 1次或者多次 要匹配+ +
匹配除\n 之外的任何单字符 匹配. .
[]匹配中括号的结束和开始 匹配[ [
?匹配前面的子表达式 0次或者1次 匹配问号 ?
\匹配一些转义或者单字符 或者原义字符 匹配\ \
^输入字符串的开始位置 在中括号中使用表示非 匹配自身 ^
{}表示限定表达式的开始和结束 匹配{} {

限定符

*匹配子表达式0次或者多次
+匹配子表达式1次或者多次
匹配子表达式0次或者1次
{n}n代表非负整数 匹配前面的表达式n次
{n,}n代表非负整数 匹配前面的子表达式n次或者多次
{n,m}n,m代表非负整数 匹配前面的子表达式n次或者m次

定位符

\d匹配的是数字字符 等价于[0-9]
\D\D 匹配的是非数字 等价于[^0-9]
\w匹配的是 字母 数字 下划线 等价于 [A-Za-z0-9_]
\W匹配的是 非字母数字下划线 等价于 [^A-Za-z0-9]
  var egx = /abc/;
    var s = "abcdefg";
   console.log(s.match(egx)); //匹配到abc
   
        var egx = /^\w+\+?$/;
        var s = "abcdefgh";
        console.log(s.match(egx)); //匹配所有字符

手机号的正则

  var egx = /^1[34578]{1}\d{9}$/;
        var s = "13353532152";
        console.log(s.match(egx));

邮箱的正则

   var egx = /^\w{5,10}@(qq|sina|163)\.(com|com\.cn)$/;
        var s = "liu_126142@qq.com.cn";
        console.log(s.match(egx));

身份证正则


        var egx = /^[1-9]\d{5}(18|19|[23]\d)\d{2}(0[1-9]|(10|11|12))(([02][1-9])|(10|20|30|31))\d{3}[0-9Xx]$/;
        var s = "610427199901020016";;
        console.log(s.match(egx));

i 忽略大小写, g全局查找

  var s = "abcdefgaabbccdks AAAaaa";
        console.log(s.replace(/a/ig, "+"));

正则里面的$1… 正则里面的占位符

        var egx = /^[1-9]\d{5}(18|19|[23]\d)\d{2}(0[1-9]|(10|11|12))(([02][1-9])|(10|20|30|31))\d{3}[0-9Xx]$/ig;
          var s = "610427199906020013"
        console.log(s.replace(egx, "$1$2$4"));

正则表达式里面\1
反向引用 \1 前面子表达式的内容

   var str = "Is is the cost of of gasoline going up up up";
       console.log(str.match(/\b([a-z]+) \1\b \1\b/ig));
    
    
       var s1="第一节 第一节";
       console.log(s1.match(/^([\u4e00-\u9fa5]{0,}) \1$/ig));
    
    

redexp 是通过test 方法 验证 返回值是true false

 var aa = "aldfjsldfj(dsfasjfj3124123)";
    var reg = new RegExp(/\((\w+)\)/);
    console.log(reg.test(aa));


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值