正则表达式一直是开发者容易忽略的知识点,因为它里面各种符合实在是太多了。今天整理一下其相关的基础知识。
正则表达式是用于匹配字符串中字符组合的模式。
在JavaScript中,正则表达式也是对象。
通常用在以下六个方法中:
/pattern/flags
正则表达式字面量本质上类似于对象字面量,每次创建就相当于新建了一个正则表达式对象,所以“相同”的两个正则表达式字面量并不相等。
在加载脚本后,正则表达式字面量提供正则表达式的编译。<=当正则表达式不变时,使用此方法可获得更好的性能
new RegExp(pattern[, flags])
使用构造函数提供正则表达式的运行时编译。当你知道正则表达式将会改变,或者你不知道模式(例如来自于用户输入),建议使用这种方式。
简单模式 直接匹配
特殊字符 当你需要搜索一个比直接匹配需要更多条件的匹配时,比如:寻找一个或多个'b',或者寻找空格等。这是我们就需要用到特殊字符:
\
(使用时需要与字符串本身的转义字符相区分,因为**\在字符串里面也是一个转义字符**)
^
$
*
=== {0,}
+
=== {1, }
?
=== {0, 1}
.
(x)
捕获括号
(?:x)
非捕获括号
,使得你能够定义为与正则表达式运算符一起使用的子表达式x(?=y)
正向肯定查找
x(?!y)
正向否定查找
x|y
{n}
{n, m}
[xyz]
[^xyz]
[\b]
\b
混淆了\b
\B
\cX
\d
\D
\f
\n
\r
\s
\S
\t
\v
\w
\W
\n
\0
\xhh
\uhhhh
\v{hhhh}
(本篇完)