js中的正则包含在两个斜杠之间:/abc+v/
\:
1.当后面不是特殊字符时表示字符边界
2.当后面是特殊字符时表示转义
^:
1.匹配首位,例如,/^A/
并不会匹配 "an A" 中的 'A',但是会匹配 "An E" 中的 'A'。
$:
1.匹配结束。例如,/t$/
并不会匹配 "eater" 中的 't',但是会匹配 "eat" 中的 't'。
*:
1.匹配前面表达式>=0次,等价于{0,}。例如,/bo*/
会匹配 "A ghost boooooed" 中的 'booooo' 和 "A bird warbled" 中的 'b',但是在 "A goat grunted" 中不会匹配任何内容。
+:
1.匹配前面一个表达式 1 次或者多次。等价于 {1,}。
?:
1.匹配前面一个表达式 0 次或者 1 次。等价于 {0,1}
。例如,/e?le?/
匹配 "angel" 中的 'el'、"angle" 中的 'le' 以及 "oslo' 中的 'l'。
.:
1.默认匹配换行符之外的任何一个字符。例如,/.n/
将会匹配 "nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'。
2.如果 s
("dotAll") 标志位被设为 true,它也会匹配换行符。
(x):
1.它会匹配 'x' 并且记住匹配项。其中括号被称为捕获括号。
(?:x):
1.不记住匹配项
x(?=y):
1.当x后面有y时匹配x
(?<=y)x:
1.与上面类似,反了过来
x(?!y):
1.与前两项类似,不过是后方不跟。
x|y:
1.匹配x或y
{n}:
1.n为正整数,匹配前面字符n次
2.{n,m}表示至少匹配n次,最多m次。
[]:
匹配括号中内容,可使用^表示不匹配,也可以使用-表示范围
例如,[^abc] 和 [^a-c] 是一样的。他们匹配"brisket"中的‘r’,也匹配“chop”中的‘h’。
例如,[abcd] 和[a-d]是一样的。他们都匹配"brisket"中的‘b’,也都匹配“city”中的‘c’。/[a-z.]+/ 和/[\w.]+/与字符串“test.i.ng”匹配。
[\b]:
匹配一个退格
\b:
匹配一个词的边界
使用"moon"举例:
/\bm/匹配“moon”中的‘m’;
/oo\b/并不匹配"moon"中的'oo',因为'oo'被一个“字”字符'n'紧跟着。
/oon\b/匹配"moon"中的'oon',因为'oon'是这个字符串的结束部分。这样他没有被一个“字”字符紧跟着。
\B:
匹配一个非单词边界
例如,/\B../匹配"noonday"中的'oo', 而/y\B../匹配"possibly yesterday"中的’yes‘
\d:
相当于[0-9],匹配一个数字
\D:
匹配一个非数字
\s:
匹配一个空白字符,包括空格、制表符、换页符和换行符。
\S:
匹配一个费空白字符
\w:
匹配一个字符(字母、数字或者下划线)。等价于 [A-Za-z0-9_]
。
\W:
匹配一个非单字字符。
\0:
匹配NULL
g |
全局搜索。 |
i |
不区分大小写搜索。 |
m |
多行搜索。 |
s |
允许 . 匹配换行符。 |
u |
使用unicode码的模式进行匹配。 |
y |
执行“粘性(sticky )”搜索,匹配从目标字符串的当前位置开始。 |