修饰符
g:goobal全文搜索,不添加,搜索到第一个匹配停止
i:ignore case忽略大小写,默认大小写敏感
m:multiple lines多行搜索
元字符
\b:匹配单词边界
\s:查找空白字符
\d:查找数字
表达式
[abc]:查找方括号之间的任何字符(内部可以连写[a-zA-z0-9])
[0-9]:查找任何从0至9的数字
(x|y):查找任何以|分隔的选项
[^abc]:查找不在方括号之间的字符
预定义类
. : 等价于:[^\r\n] 除了回车符和换行符之外的所有字符
\d:等价于[0-9] 数字字符
\D:非数字字符
\s:空白符
\S:非空白符
\w:单词字符
\W:非单词字符
边界
^:以xxx开始
$:以xxx结束
\b:单词边界
\B:非单词边界
量词
?:出现零次或一次(最多出现一次)
+:出现一次或多次(至少出现一次)
*:出现零次或多次(任意次)
{n}:出现n次
{n,m}:出现n到m次
{n,}:至少出现n次
分组应用
方法
RegExp.prototype.test(str)
用于测试字符串参数中是否存在匹配正则表达式模式的字符串
如果存在则返回true,否则false
有一个lastIndex属性要注意 每次调用时lastIndex都会变化每次匹配时都是从上一次匹配结果的下一个字符开始找
(lastIndex当前匹配结果的最后一个字符的下一个字符)
RegExp.prototype.exec(str)
使用正则表达式模式对字符串执行搜索,并将更新全局RegExp对象的属性(lastIndex)以反映匹配结果
如果没有匹配的文本则返回null,否则返回一个结果数组
String.search(reg)
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
方法返回第一个匹配结果index,查找不到返回-1
search()方法不执行全局匹配,它将忽略标志g,并且总是从字符串的开始进行检索
String.match(reg)
将检索字符串,以找到一个或多个与regexp匹配的文本
如果没有找到任何匹配的文本,将返回Null
否则将返回一个数组,其中存放了与它找到的匹配文本有关的信息
String.replace(a,b)
(str,replaceSte)两个参数,第一个参数是原字符串中需要替换的字符,第二个参数为要替换成什么字符
(reg,replaceStr)第一个参数为正则表达式
(reg,function)第二个参数为一个函数
function会在每次匹配替换的时候调用,用四个参数
1.匹配字符串 match
2.正则表达式分组内容,没有分组则没有该参数
3.匹配项在字符串中的index
4.原字符串
没有分组时
有分组时