JS 正则表达式

正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来

  1. 创建正则表达式的对象

    1. 语法:  var 变量 = new RegExp('正则表达式','匹配模式');
    2. 在构造函数中可以传递一个匹配模式作为第二个参数,可以是
      1. i   忽略大小写
      2. g  全局匹配模式
    3. 使用typeof检查正则对象,会返回object
    4. 正则表达式的方法
      1. test()      使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,不符合返回false
        var reg = new RegExp('a');    //定义正则表达式
                var str = 'a';
                console.log(typeof reg);    //检查表达式类型
                console.log(reg.test(str)); //字符串中只要存在a,就返回true,不存在返回false,严格区分大小写
                console.log(reg.test('bbbx'));
                console.log(reg.test('dha'));
                console.log(reg.test('A'));
                console.log('--------');
                var cc = new RegExp('c', 'i');
                console.log(cc.test('aC'));

2.使用对象字面量来创建正则表达式

  1. 语法:var 变量 = /正则表达式/匹配模式;
  2.  使用字面量的方式创建更加简单,但使用构造函数创建更加灵活
    1. [ ]里的内容也是或的关系,即[ab] == a|b
    2. [ ^ ] 除了括号内的内容,剩下都可以
    3. [a-z] 任意小写字母
    4. [A-Z] 任意大写字母
    5. [A -Za- z] 任意字母
    6. [0-9] 任意数字 
    7. reg = /a[bde]c/  检查一个子字符串是否含有abc 或adc 或aec

3.字符串和正则相关方法

  1. split() 

    1. 可以将一个字符串拆分为一个数组

    2. 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串

    3. eg:根据任意字母来拆分字符串

      var str='32tfd74jsd82kd4';
      var result=str.split(/[A-z]/);
      console.log(result);
  2. search()
    1. 可以搜索字符串中是否含有指定内容
    2. 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
    3. 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
      //搜索字符串中是否含有ab或者ac
              var str='heal ab djads abss aced';
              console.log(str.search(/a[bc]/));
  3. match()
    1. 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
    2.  默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
    3. 可以为一个正则表达式设置多个匹配模式,且顺序无影响
  4.  量词
    1. 通过量词可以设置一个内容连续出现的次数
    2. 量词只对第一个内容起作用
    3. {n}  正好出现n次
    4. {m,n} 出现m-n次
    5. {m,} 出现m次以上
    6. +  至少一个,相当于{1,}
    7. *  0个或多个,相当于{0,1}
    8. ?  0个或1个,相当于{0, 1}
    9. ^  表示开头(检查一个字符串是否以a开头,reg=/^a/
    10. $ 表示结尾 (检查一个字符串是否以a结尾,reg=/a$/
    11. . 表示任意字符
    12. 在正则表达式中使用 来作为转义字符,用 \. 来表示 . , \\ 表示 \,使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符,如果要使用\则需要使用\\来代替

 注:如果想表示以a开头或者以a结尾,reg=/ ^a|a$ /

  • \w     任意字母、数字、_
  • \W    除了字母、数字、_
  • \d     任意的数字[0-9]
  • \D     除了数字[^ 0-9]
  • \s      空格
  • \S     除了空格
  • \b     单词边界
  • \B     除了单词边界

正则表达式规范练习

  1. 正确的手机号
  2. 正确的qq邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值