正则表达式
含义:用某种模式去匹配一类字符串的公式
正则表达式的定义
显式定义: var 变量名 = new RegExp(”正则表达式模式“)
隐式定义: var 变量名 = / 正则表达式模式 /
常用方法
test 正则.test(字符串) 返回布尔值true/false
search 字符串.search(正则) 返回索引号 ,没匹配到返回-1
match 字符串.match(正则) 返回数组 匹配不成功返回null
replace 替换 字符串.replace(正则,’新字符串‘) 返回替换的新字符串
普通字符(a-z A-Z 0-9)
元字符
\d 匹配数字,相当于[0-9]
\D 匹配非数字,相当于[^0-9]
\w 匹配字母,数字,汉字,下划线
\W 匹配任意不是字母,数字,汉字,下划线的字符
\s 匹配任意的空白符,如空格,换行符,制表符等
\S 匹配任意不是空白符的字符
.(点号) 匹配除了换行符以外的任意字符
[…] 匹配方括号中的所有字符
[^…] 匹配非方括号中的所有字符
连接符 (定义字符串的范围)
[0-9] 匹配数字范围
[a-z] 匹配数字小写英文字母范围
[A-Z] 匹配大写字母范围
[0-9 a-z A-Z] 匹配数字,大小写字母
限定符(量词)
- 重复1次或者多次 >=1
- 重复0次或更多次 >=0(任意次)
? 重复0次或1次(最多一次) <=1
{ n } 重复n次
{ n , } 重复n次或更多次(最少n次)
{ n , m } 重复n到m次
定位符(边界)
^ 限定开始位置的字符
$ 限定结束位置的字符
\b 限定单词(字)边界的字符
\B 限定非单词(字)边界的字符
修饰符
g:global 全文搜索 ,不添加搜索到一个就停止
i:ignore case 忽略大小写,默认大小写敏感
m:multiple lines 多行搜索
特殊转义符
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\t 匹配制表符
\v 匹配垂直制表符
\ 匹配 \
‘’ 匹配 双引号
’ 匹配 单引号
. 匹配点
运算符优先级
运算符 描述
\ 转义符
(), (?😃, (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, \任何元字符、任何字符 定位点和序列(即:位置和顺序)
| 替换,"或"操作
字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。