js正则表达式

定义:正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

1、学习正则表达式的目的

为了更加方便高效的处理字符串,比如密码强度的校验,银行卡号、邮箱等等

2、创建正则表达式

字面量的方法:

var reg = /\d/g

通过new关键字实例化

var reg = new RegExp('\\d');

区别:字面量创建方式不能进行字符串拼接,实例创建方式可以,字面量创建方式特殊含义的字符不需要转义,实例创建方式需要转义

元字符:相当于代表某类型字符串的占位符

\d0-9之间的任意一个数字
\D除了\d
\w数字,字母 ,下划线 0-9 a-z A-Z _
\W除了\w
\s空格
\S除了\s
\n匹配换行符
.匹配除了\n
\转义字符
|
()子表达式,分组
\b匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^匹配开始,匹配后面的一个字符或一个子表达式
$匹配结束,匹配前面的一个字符或一个子表达式
[a-z][]匹配范围,占一个,匹配a-z
[^a-z]匹配非a-z,[]中的^表示非
[qwe]匹配qwe三个字符中的任意一个

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

量词:用来修饰元字符,出现在元字符后面 如\d+,限定出现在前面的元字符的次数

* :匹配0到多个

+:匹配1到多个

?:0次或1次

{n}:匹配n次

{n,}:匹配n或以上次

{n,m}:匹配n到m次

注意:一般[]中的字符没有特殊含义,.就表示.,+就表示+,但是\w,\d等还是有特殊含义

正则断言:

  1. (?=exp) 零宽正向先行断言
  2. (?!exp) 零宽负向先行断言
  3. (?<=exp) 零宽正向后行断言
  4. (?<!exp) 零宽负向后行断言

如同^代表开头,$代表结尾,\b代表单词边界一样,先行断言和后行断言也有类似的作用,它们只匹配某些位置,在匹配过程中,不占用字符,所以被称为“零宽”。所谓位置,是指字符串中(每行)第一个字符的左边、最后一个字符的右边以及相邻字符的中间。

(?=exp) 零宽正向先行断言:表示字符串中的一个位置,紧接该位置之后的字符串能够匹配表达式exp

(?!exp) 零宽负向先行断言:表示字符串中的一个位置,紧接该位置之后的字符串不能匹配表达式exp

(?<=exp) 零宽正向后行断言:表示字符串的一个位置,紧接该位置之前的字符串能够匹配表达式exp

(?<!exp) 零宽负向后行断言:表示字符串的一个位置,紧接该位置之前的字符串不能够匹配表达式exp

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值