JavaScript学习笔记(九)

3.5 正则表达式

3.5.1 概念
  • 常被用来检索、替换那些符合某个模式规则的文本
  • 正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来
3.5.2 作用
  • 1.匹配
    判断给定字符串是否满足正则表达式的过滤逻辑
  • 2.提取
    可以通过正则表达式,从字符中获取需要的特定部分
  • 3.替换
    正则有很强大的字符串替换能力
3.5.3 特点
  • 1.灵活性、逻辑性和功能性非常的强
  • 2.运用广,比如:爬虫
  • 3.对刚接触的人来说,比较晦涩难懂
3.5.4 组成
  • 1.普通字符 ‘hello’,‘123’
  • 2.元字符 :正则表达式中有特殊意义的字符
    \d:匹配数字 \w:匹配字母数字或下划线
3.5.5 元字符
3.5.6 常用案例
  • 1.用户名

      ^ [a-z0-9_-]{3,16}
    
  • 2.密码

      ^ [a-z0-9_-]{6,18}
    
  • 3.手机号码

      ^ (13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
    
  • 4.邮编

      [1-9]\d{5}$
    
  • 5.验证日期

      ^\d{4}-\d{1,2}-\d{1,2}
    
  • 6.验证邮箱

      ^\w+@\w+\.\w+$
    
3.5.7 JS中使用正则表达式
  • 1.创建正则对象

      法1:var reg = new RegExp('ab[a-z]','i');
    
      				
      法2:var reg = /ab[a-z]/i;
    

标志:

i	执行对大小写不敏感的匹配。
g	执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m	执行多行匹配。
  • 2.与正则表达式相关的方法
    针对RegExp对象

      test( )匹配
    
      				
      exec( )提取 提取一个内容
    

针对String对象

	replace( )替换
	
	splic( ) 切割
	
	search( )搜索
  • 3.匹配
    匹配手机号:

      var phonenum = '18569234596';
      var phoneReg = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]
      |18[0|1|2|3|5|6|7|8|9])\d{8}$/;
      console.log(phoneReg.test(phonenum));  // true
    
  • 4.提取
    提取qq号码:

      var qq = '小廖:1111111,大料:2222222,老廖:3333333';
      var reg = /\d+/g;
      do{
          var content = reg.exec(qq);
          if(content){
              console.log(content[0]);
      }
      }while(content)
    
  • 5.替换
    替换所有空白字符:

      var str = '       i    love  you   !       ';
      str = str.replace(/\s/g,'*');
      console.log(str); // *******i****love**you***!*******
    

替换所有开头和结尾的空格:

	var str = '       i    love  you   !       ';
	console.log(str.trim());
  • 6.贪婪和非贪婪模式
    贪婪模式:尽可能的匹配
    非贪婪模式:尽可能的匹配
    语法:将?紧跟在任何量词*、+、?或{}的后面,将会使量词变为非贪婪的(匹配尽可能少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值