文章目录
正则表达式
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式
在 JavaScript 中,正则表达式也是对象
一、正则表达式的创建
- 通过构造函数创建
var regexp = new RegExp(/123/)
- 利用字面量创建 正则表达式
var rg = /123/
二、测试正则表达式
.test()
正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false
var rg = /123/; var rg = /abc/;
rg.test(123); rg.test('abc')
三、元字符(特殊字符)
1. 边界符
正则表达式中用来提示字符所处的位置
-
^
表示匹配行首的文本(以谁开始) -
$
表示匹配行尾的文本(以谁结束) -
/^123$/
精确匹配,只能是123 的字符串才会匹配/123/
这种是里面含有123的就匹配
2. 字符类
2.1 []
方括号
表示有一系列字符可供选择,只要匹配其中一个就可以了
-
/[abc]/
只要包含a
orb
orc
其中一个就匹配 -
/^[abc]$/
只能有a
orb
orc
其中一个才匹配 -
[-]
方括号内部表示范围/^[a-zA-Z0-9_-]$/
-
/^[^a-z]$/
中括号中的^
是取反
2.2 量词符
量词用于修饰前一个单位出现的次数
-
*
出现0次或更多次/^a*$/
-
+
出现1次或更多次/^a+$/
-
?
出现0次或1次时返回 true/^a?$/
-
{n}
出现 n 次/^a{3}$/
-
{n,}
出现 n 次或更多/^a{3,}$/
-
{n, m}
出现 n 到 m 次/^a{3,8}$/
/^[a-z]{3,8}$/
注意 :量词中 {} 内不能有空格
2.3 括号总结
-
中括号
[]
一个中括号匹配一个字符,内部的元素多选一(或的关系) -
小括号
()
提升优先级/^abc{3}$/
'abccc'
才为 true/^(abc){3}$/
'abcabcabc'
才为 true -
大括号
{}
量词
3. 预定义类
预定义类指的是某些常见模式的简写方式
-
\d
相当于[0-9]
-
\D
相当于[^0-9]
-
\w
相当于[a-zA-Z0-9_]
任意字母数字下划线 -
\W
相当于[^a-zA-Z0-9_]
-
\s
相当于[ \n\r\v\t]
空白字符(空格/换行/制表符/等空白字符) -
\S
相当于[^ \n\r\v\t]
-
.
除了换行以外的所有字符 -
|
或者符号
4. 修饰符
-
g
全局匹配/123/g
-
i
忽略大小写
5. 正则替换replace
replace()
方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式
字符串方法
-
replace()
替换.replace(/尼玛|草/g, '**')
-
match()
匹配后提取,返回数组(保存了匹配的数据) -
split()
切割,支持传入正则(可以传多个分隔符)