javaScript之正则表达式
( 转载腾讯课堂里面老师的笔记 )
-
什么是正则表达式
一个用来搜索、匹配一系列符合特定语法规则的字符串的处理工具(字符搜索模式)。
正则是一个强大的字符串处理工具用途:
1,进行特定字符或字符串的搜索
2,替换掉字符串中的指定字符或字符串
3,验证字符串是否是符合需求
-
前置练习题
var str ='qw123j143llfa789dg498lfds'
请将以上字符串中的数字全部提取出来并存入数组,要求相连的数字保存为一个值,最终的数组结果应为
['123','43','789','498']
-
书写规则
-
字面量写法:
let reg = /abc/;
优点:简洁方便 缺点:不支持变量
-
构造函数写法:
let reg = new RegExp('abc');
优点:支持变量 缺点:需要注意字符转移规则
-
-
元字符
. 匹配除了换行和特殊空白符之外的字符 \w 匹配数字,字母,下划线 \d 匹配数字 \s 匹配空白字符 \W 匹配除数字,字母,下划线之外的字符 \D 匹配数字之外的字符 \S 匹配空白字符之外的字符 \b 匹配单词边界 \B 匹配非单词边界 \n 匹配换行符 \r 匹配回车符 \t 匹配制表符 -
量词
+ 至少匹配一次,最多不限 ? 匹配0到1次 ***** 至少匹配0次,最多不限 {n} 匹配n次 {n, } 至少匹配n次,最多不限 {n,m} 最少匹配n次,最多匹配m次 -
范围匹配(字符组)
范围匹配用于匹配在指定范围内的一个特定字符
[asdf] 匹配asdf这四个字符中的任意一个字符 [0-9] 匹配从0到9之间的任意一个数字 [a-z] 匹配从小写字母a到小写字母z之间的任意一个字母 [A-Z] 匹配从大写字母A到大写字母Z之间的任意一个字母 [A-z] 匹配从大写字母A到小写字母z之间的任意一个字母 [\u4e00-\u9fa5] 匹配所有的中文汉字(常用汉字 -
分组
分组是正则中很常用也很重要的一个概念
1,使用()对正则表达式进行分组,每个()为一个子组
2,每个子组都是一个子正则表达式
3,通过分组,可以改变量词的影响范围
[a-z]\d+/
与/[a-z]\d+/
结果完全不同 -
位置限制
^ 匹配在字符串开始位置的字符串 $ 匹配字符串在结束位置的字符串 -
修饰符
i 匹配吋忽略大小写 m 进行多行匹配(需要配合开始位置^与结束位置$使用 g 全局匹配(匹配所有符合的结果,而不是只匹配一次) -
范围排除(字符组)
范围排除用于排除在指定范围内的一个特定字符(即不匹配这个字符)
[^asdf] 匹配不在asdf这四个字符中的任意一个字符 [^0-9] 匹配数字之外的任意一个数字 [^a-z] 匹配所有小写字母之外的任意一个字母 [^A-Z] 匹配所有大写字母之外的任意一个字母 [^A-z] 匹配所有小写和大写字母之外的任意一个字母 注意只有当**
^
在[]
**的开始位置时才表示排除,如果在其它位置,它只是一个普通的字符 -
多选匹配
red|blue|green
匹配字符串red,或者blue,或者green
-
正则方法
-
test()
test()方法用验证字符串是否符合正则规则
-
exec()
exec()方法匹配字符串中符合正则规则的字符串和该字符串所出现的位置。
-
-
支持正则的字符串方法
-
search()
-
match()
-
replace()
-
split()
-