07.正则

七、正则

7.1 了解正则表达式
  • 什么是正则表达式
    正则表达式(regular expression)是一个描述字符模式的对象。
  • 为什么要使用正则表达式
    正则表达式能够进行强大的“模式匹配”和“文本检索与替换”功能。前端往往有大量的表单数据校验的工作,采用正则表达式会使得数据校验的工作量大大减轻
7.2 创建正则表达式
7.2.1 RegExp构造函数,
  • 第一个参数就是我们的模式“字符串”
var reg= new RegExp('study');

//使用特殊字符
var reg= new RegExp('\\d\\w+');
  • 第二个参数可选,模式修饰符
  • i: case-insensitive,表示忽略大小写
  • g: global,表示全局匹配
  • m: multiline,表示多行匹配,影响^,$的匹配结果
var reg = new RegExp('study', 'ig');
7.2.2 字面量方式直接声明
var reg = /study/gi;
  • 直接量是字符匹配,不支持变量
7.3 使用正则表达式
7.3.1 支持正则表达式的字符串方法
  • search
    返回第一次匹配时所在的索引值,如果匹配不到则返回-1
  • match
  • 默认匹配字符串,返回一个数组
    • 0:所匹配的字符
    • index:匹配第一个字符所在的索引
    • input:对字符串的引用
  • 全局匹配(g),返回一个匹配所有字符串数组
  • 如果匹配不到则返回null
  • replace
    替换字符串
  • split
    'a,b ,c , d, e'.split(/\s*,\s* /);
7.3.2 正则表达式的属性和方法
  • 测试正则表达式用test方法,返回布尔值
var reg = /study/gi
reg.test('study il')//返回 true
reg.test('aaaaa')//返回 false
  • 测试正则表达式exec方法,返回匹配字符
var reg = /study/gi
reg.exec('study il')//返回 对象(包含匹配study)
reg.exec('aaaaa')//返回 null
7.3.3 匹配规则
  • 原字匹配:所有字母和数字都是按照字面量进行匹配,和字符串匹配等效
    /good/gi
  • 字符类(只记小写字母即可)
  • . : 除换行以外的字符
  • \w : 代表数字或字母或下划线
  • \W : 非数字字母和下划线字符
  • \d : 数字
  • \D : 非数字
  • \s : 代表一个空格
  • \S : 空格以外的字符

PS:以上所有字符类都只是匹配“一个”字符

  • 边界处理
  • \b : 匹配一个单词边界,也就是指单词和空格间的位置
  • \B : 匹配非单词边界。
  • 特殊符号
    ^ $ . * + ? = ! : | \ / () [] {}
  • []: 代表任意“单个字符” ,里面的内容表示“或”的关系
    - -: 代表范围
    - ^: 代表非
  • (): 表示分组(n是以最左边括号出现的顺序排列)
    - $1: 表示第一个分组
    - $n: 表示第n个分组(不能写在正则表达式里)
    - \n: 在正则分组后面使用,表示对第n个分组的引用(一定要写在正则表达式里)

PS: 编写的正则分组数量越少越好

  • |: 表示或者
  • 锚点定位
    - ^: 表示以什么开头
    - $: 表示以什么结尾
  • 表示数量,对前一个字符计数,
    - *: 代表0个或0个以上 <===>{0,}
    - +: 代表1个或1个以上 <===>{1,}
    - ?: 代表0个或1个 <===>{0,1}
    - {}:
\d{5}: 匹配5个数字
\d{5,10}: 匹配5个到10个数字
\d{5,}: 匹配5个或5个以上的数字

PS:
1)数量词*,+,{5,},会尽可能多的去匹配结果(贪婪)
2)在后面加一个?表示尽可能少的去匹配结果(非贪婪)
google,goooogle ==> /go+/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值