JavaScript—正则
正则表达式(Regular Expression)是用于匹配字符串中的字符组合的模式。
创建正则表达式
-
通过RegExp对象创建
var Reg = new RegExp(/123/);
-
利用字面量的方式创建
var Reg = /123/;
检测正则表达式
-
test()
regexObj.test(str); //regexObj:正则表达式 str:要检测的字符串
-
match()
str.match(regexObj); //匹配返回一个数组,不匹配返回null
-
exec()
regexObj.exec(str); //匹配返回一个数组,不匹配返回null 与match返回格式相同
正则表达式中的特殊字符
-
边界符
用来提示字符所处的位置
^
:表示匹配行首的文本(以谁开始)$
:表示匹配行尾的文本(以谁结束)
-
字符类
字符类:[]表示有一系列字符可供选择,只要匹配其中一个即可。
let reg = /^[a-zA-Z0-9_-]$/; //字符串包含a-zA-Z0-9_-中任何一个字符即可
[^]
表示取反
-
量词符
量词符用来设定某个模式出现的次数
量词符 说明 *
重复零次或多次 +
重复一次或多次 ?
重复零次或一次 {n}
重复n次 {n,}
重复n次或更多次 {n,m}
重复n-m次 let reg = /^[a-zA-Z0-9_-]{3,10}$/; 字符串包含a-zA-Z0-9_-,并>=3位和<=10位
-
括号总结
{}
:量词符,里面表示重复次数[]
:字符集合,匹配其中的任意字符()
:表示优先级
-
预定义类
预定义类 说明 \d
匹配0-9之间的任一数字,同等于 [0-9]
\D
匹配所有0-9之外的字符,同等于 [^0-9]
\w
匹配任意的字母、数字、下划线,同等于 [a-zA-Z0-9_]
\W
匹配除所有字母、数字、下划线之外的字符,同等于 [^a-zA-Z0-9_]
\s
匹配空格(包括换行符、制表符、空格等),同等于 [\t\r\n\v\f]
\S
匹配非空格的字符,相当于 [^\t\r\n\v\f]
let reg = /^\d{3}-\d{8}|\d{4}-\d{7}$/; // | 代表或
-
修饰符
-
g
:全局匹配 -
i
:忽略大小写 -
m
:多行匹配let reg = /\w/g;
-
正则表达式中的方法
-
search()
方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
str.search(regexObj); //匹配成功返回下标,不成功返回-1
-
replace()
方法用于在字符串中用一些字符串替换另一些字符串,或替换一个与正则表达式匹配的子串。
str.replace(regexObj,'**'); //参数一:正则表达式/字符串 参数二:替换字符 匹配成功或字符存在则替换