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+/
938

被折叠的 条评论
为什么被折叠?



