基本方法
search()
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置match()
用于提取字符串中符合规则的字符串,并返回一个数组对象replace()
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串test()
用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 falsesplit()
用于把一个字符串分割成字符串数组(接收字符串或者正则)
修饰符
i
执行对大小写不敏感的匹配g
执行全局匹配m
执行多行匹配
范围
[abc]
查找方括号之间的任何字符[1-9]
查找任何从 1 至 9 的数字[a|1]
查找a 或 1
元字符
\d
数字字符,等价于 [0-9]\D
非数字字符,等价于 [^0-9]\s
空白字符(空格、制表符、换页符),等价于 [ \f\n\r\t\v]\S
非空白字符,等价于 [^ \f\n\r\t\v]\w
字母、数字、下划线,等价于 [A-Za-z0-9_]\W
非字母、数字、下划线,等价于 [^A-Za-z0-9_]\f
分页符\n
换行符\r
回车符\t
制表符\
转义符.
除换行符(\n、\r)之外的任何单个字符。要匹配包括 \n 在内的任何字符,请使用 (.|\n) 的模式
元字符表:http://www.runoob.com/regexp/regexp-metachar.html
量词
+
匹配前面的子表达式一次或多次?
匹配前面的子表达式零次或一次*
配前面的子表达式零次或多次,等价于 {0,}{n}
匹配确定的 n 次{n,}
至少匹配 n 次{n,m}
最少匹配 n 次且最多匹配 m 次
分组
()
圆括号包裹的规则为一组——通过 1.. 1.. 1..n的方式获取,看示例
位置
^
行首(字符串开头)$
行首(字符串结尾)
风格
- javaScript风格——new RegExp(表达式,修饰符)
- perl风格——/表达式/修饰符
示例
/*查找第一个 o 在字符串中出现的位置*/
"hello world".search(/o/)
/*提取出字符中有一个或若干个 l 并不区分大小写*/
"hello world Love".match(/l+/gi)
/*将字符串中 所有的 8 替换成 * */
"13874383838".replace(/8/g,"*")
/*将字符串分组匹配,并按格式输出*/
"13874383838".replace(/(\d{3})(\d{4})(\d{4})/,"$1-$2-$3")
/*完全匹配字符串是否只包含小写字母*/
/^[a-z]+$/i.test("hello world")
/* 提取出日期信息 */
"2018年-05月-20日 20时:13分:14秒".split(/\s+|-+|:+/g)