RegExp正则表达式

RegExp正则表达式

1了解正则表达式

1.1什么是正则表达式

正则表达式(regular expression)是一个描述字符模式的对象。

1.2为什么要使用正则表达式

正则表达式能够进行强大的模式匹配文本检索与替换功能。前端往往有大量的表单数据校验的工作,采用正则表达式会使得数据校验的工作量大大减轻

2正则表达式的创建

2.1 构造函数的方式

第一个参数就是我们的模式字符串

var reg= new RegExp('study');

//使用特殊字符

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

第二个参数可选,模式修饰符

i: case-insensitive,表示忽略大小写

g: global,表示全局匹配

m: multiline,表示多行匹配

var reg = new RegExp('study', 'ig');

2.2 字面量的方式

var reg = /study/gi;

直接量是字符匹配,不支持变量

3正则表达式的使用

3.1支持RegExp的字符串方法

3.1.1 search

var reg = /study/gi;

返回第一次匹配时所在的索引值,如果匹配不到则返回-1

3.1.2 match

· 默认匹配字符串,返回一个数组

0:所匹配的字符

index:匹配第一个字符所在的索引

input:对字符串的引用

· 全局匹配(g),返回一个匹配所有字符串数组

· 如果匹配不到则返回null。

3.1.3 replace

替换字符串

3.1.4 split

'a,b ,c , d, e'.split(/\s*,\s* /);

3.2 RegExp的属性和方法

· 测试正则表达式用test方法,返回布尔值

格式:正则表达式.test(字符串);

<正则表达式>测试<字符串>是否匹配,返回true/false

· 测试正则表达式exec方法

/xx/.exec(字符串)

3.3匹配规则

3.3.1所有字母和数字都是按照字面量进行匹配,和字符串匹配等效

3.3.2 字符类

· . : 除换行以外的字符

· \w : 代表数字或字母或下划线。 可理解为一个word

· \W : 非数字字母和下划线字符

· \d : 数字。 digit数字

· \D : 非数字

· \s : 代表一个空格。spacing空格

· \S : 空格以外的字符

· \b : 匹配一个单词边界,也就是指单词和空格间的位置。 border边界

例如,var reg = /\b1[34578][0-9]{9}\b/g;  两个\b代表前后必须都是单词边界才能匹配。

· \B : 匹配非单词边界。

· \u2E80-\u9FFF 表示中文范畴。

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

var reg = /\b1[34578][0-9]{9}\b/g;  1[345678][0-9]都只代表只能匹配一个字符。

3.3.3特殊符号

主要包括 ^ $ . * + ? = ! : | \ / () [] {} 

3.3.3.1 []

代表任意单个字符” ,里面的内容表示的关系,-: 代表范围;^: 代表非

3.3.3.2() 表示分组

· $1: 表示第一个分组

· $n: 表示第n个分组(不能写在正则表达式里)

· \n: 在正则分组后面使用,表示对第n个分组的引用(一定要写在正则表达式里)

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

3.3.3.3 |

表示或者。

3.3.3.4定位锚点

· ^: 表示以什么开头

· $: 表示以什么结尾

3.3.3.5 表示数量,对前一个字符计数

· *: 代表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+/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值