javascript-正则表达式
g:global全文搜索,不添加,搜索到第一个匹配停止。
i:ignore case 忽略大小写,默认大小写敏感。
m:multiple lines 多行搜索。
lastIndex:当前表达式匹配内容的最后一个字符的下一个位置
source:正则表达式的文本字符串
原义文本字符(比如:abc)
元字符(比如:\b)。元字符是正则表达式中有特殊含义的非字母字符 (.*+?^.|\(){}[])
\t:水平制表符
\v:垂直制表符
\n:换行符
\r:回车符
\0:空字符
\f:换页符
[abc]:构建一个简单的类(比如:'a1b2c3d4'.replace(/[abc]/g,'X') =》X1X2X3d4)
[^abc]:取反
[a-z]:从a到z的任意字符,包含a和z。(比如:'a1b2c3d4aa'.replace(/[a-z]/g,'X') =》X1X2X3X4XX)
[a-zA-Z]:在[]组成的类内部可以连写的。
[a,z]:分割('12345678'.replace(/[1,3]/g,'A') =》A2A45678)
.:除了回车符和换行符之外的所有字符([^\r\n])
\d:数字字符([0-9])
\D:非数字字符([^0-9])
\s:空白符([\t\n\x0B\f\r])
\S:非空白符([^\t\n\x0B\f\r] )
\w:单词字符,包含字符、数字、下划线([a-zA-Z_0-9])
\W:非单词字符([^a-zA-Z_0-9 ])
^:以xxx开始('@123@abc@a'.replace(/^@./g,'X') =》X23@abc@a)
$:以xxx结束('@123@abc@a'.replace(/@.$/g,'X') =》@123@abcX)
\b:单词边界
\B:非单词边界
?:出现0次或1次
+:出现1次或多次
*:出现0次或多次
{n}:出现n次
{n,m}:出现n到m次
{n,}:至少出现n次
使用()可以达到分组的功能,使量词作用于分组('a1b2c3d4'.replace(/(\w\d){3}/g,'X') =》Xd4)
或|('a1b2c3d4'.replace(/(a1|b2)/g,'X') =》XXc3d4)
正向前瞻:exp(?=assert)('a2*3'.replace(/\w(?=\d)/g,'X') =》X2*3)
负向前瞻:exp(?!assert)
正向后顾:exp(?<=assert),JS不支持。
负向后顾:erp((?<!assert),JS不支持。