正则表达式1

  1. 概念
    什么是正则表达式?正则表达式其实也可以当做是js中的一中对象。
    它的作用是解决字符串操作中一些比较麻烦的场景:比如字符串提取,字符串替换,字符串验证等。

  2. 写法:
    正则表达式是长什么样的?既然可以把它当做是一个对象,那么就可以使用构造函数的方式去new一个正则表达式。

  • var reg2=new RegExp("a");
  • var reg1=/a/;
    • 其中//是标记,a表示要匹配的字符
  1. 正则表达式匹配
    匹配一个字符串是否符合自己制定的规则,可以使用正则表达式对象的test方法。
    var reg=/a/;        //匹配字符串中的a字符
    reg.test("abc");        
    //正则表达式的test用来检测字符串是否满足正则表达式的要求;
    //由于"abc"中存在a,所以是符合要求的,所以这段代码的返回值为:true

    const isTrue = reg.test("coke");   
    //由于"coke"中不存在a字符,所以不符合条件   -->isTrue:false

  1. 正则表达式的特殊字符
4.1字符类别:
  • . 表示除了换行符(\r \n)以外的任意字符
    var reg=/./;
    reg.test("a");  //true
    reg.test(".");  //true
    reg.test("\r"); //false
    reg.test("1\r");    //存在一个1,不是换行符,所以结果为:true
    reg.test("\r\n");   //false

    //注意点:如果以后要匹配.字符,不要直接写.
    //为了匹配qq邮箱,写了 /qq.com/ 这是一个错误的写法:
    //=>/qq.com/不仅匹配:"qq.com"也匹配"qq3com" "qq@com"

    //解决方案:/qq\.com/  或者 /qq[.]com/
  • \d 表示数字
   var reg=/\d/;
   reg.test("123abc"); //由于存在一个数字,所以结果为true
   reg.test("abcde");  //由于不存在任何数字,所以结果为false

   //扩展:
   var _reg=/\d\d/;
   _reg.test("1b");    //不存在2个连续数字,所以结果为:false
   _reg.test("a12c");  //存在2个连续数字,结果为:true

   //匹配手机号码:出现了连续11个数字
   var isCellphoneNumber=/\d\d\d\d\d\d\d\d\d\d\d/;
  • \D 是\d的取反结果,表示不是数字
    var reg=/\D/;
    reg.test("123");   //由于全是数字,所以结果为:false
    reg.test("123a");  //存在一个字母,所以结果为:true

    var reg1=/123\D5/;
    reg1.test("12345"); //false
    reg1.test("123b5"); //true
  • \w 匹配字母、数字、下划线 ,三者满足其一即可
    var reg=/\w/;   
    reg.test("123");    //存在数字,结果为:true
    reg.test("a");  //true
    reg.test("1");  //true
    reg.test("_");  //true
    reg.test("-");  //false
    reg.test(".");  //false

    reg.test("1.");   //true
    reg.test("_\r\n");  //true
    reg.test("\r\n");   //false
  • \W 是\w的取反

  • \s 表示一个空白字符(例如:\r \n \t 空格 。。。)

    var reg=/\s/;
    reg.test("abc def");   //存在一个空白,结果为:true
    reg.test("abc\r123");   //存在一个\r,结果为:true
    reg.test("abc");    //false
  • \S 是\s的取反
    var reg=/\S/;
    reg.test(" \r \n ");   //全是空白字符,结果为false
    reg.test("123 abc");    //存在一个空白,结果为true


    var reg3=/\s\S/;
    reg3.test(" a");    //true
    reg3.test("a ");    //false
    reg3.test("a b");   //true
  • \ 转义字符
    var reg=/./;    //匹配除了换行符以外的任意字符
    var reg=/\./;   //匹配.字符

    var reg=/\//;   //匹配一个正斜杠:/
    var reg=/[/]/;  //。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值