1,正则表达式会去查找字符串中符合某个模式的部分,在 JavaScript 中,正则表达式的创建方法是放在一对"/"之间,或者用
newRegExp()
,随后再调用 match,test 或者 replace 方法。
你可以事先定义正则表达式,也可以在调用方法时直接定义:
2,使用
match
方法,一次匹配一个字符或者将多个字符放入方括号
[]
中以捕获任何匹配的字符,使用连字号
-
来捕获特定范围的字符:
3,在正则表达式末尾添加可选的修饰符来定义表达式的匹配方式,在 JS 中,我们的修饰符有:
i:大小写不敏感(case insensitive)m:多行匹配(multi line matching)g:全局匹配(global match)
4,在开始出插入符号
^
表示匹配位置在字符串开头,在正则末尾插入符号
$
表示匹配位置在字符串结尾,现在可以开始将多个匹配条件组合起来匹配更长的字符串:
5,使用通配符和特殊转义字符来匹配较长的字符串。
.
:除换行以外的任何字符
\d
:数字
\D
:非数字
\s
:空格
\S
:非空格
\n
:新行
6,仅匹配特定数量的字符,量词缩写:
?
:相当于{0,1},表示有匹配的或者没有匹配的;
+
:相当于{1, },表示至少匹配一次;
{3}
:表示刚好出现了3次;
{2,4}
:表示出现了2-4次;
*
:相当于{0,},也就是出现包括0在内的任意次。
7,使用圆括号
()
为字符串分组,match 方法会返回被匹配的字符串以及符合匹配条件的部分,除非在正则表达式中加入修饰符
g
。在括号中使用
|
符号来实现多选分支,
|
相当于“或”:
8,需要匹配特殊字符时,使用反斜杠
\
转义。JS 正则表达式中的特殊字符是
^$ \.*+?()[]{}|
,因此在需要匹配一个星号时,应该写作
\*
而不是
*
:
9,需要匹配排除某个字符以外的字符时,在方括号中使用
^
字符进行排除字符组,
^
在这里相当于是求反,但记住在之前的第4点中,它还有“字符串开始”的意思,所以一定要正确书写。
10,正则表达式可以被用于查找和匹配各种各样的内容,包括 url 和文件名,然而如果你在尝试将正则表达式用于更加复杂的内容,比如解析电子邮件(比你想象的更复杂)或者是解析 HTML(记住html并不是一门常规的语言,它并不能被正则表达式完全解析)时,请务必谨慎小心。
正则表达式的水远比这篇文章深,比如我们并没有讲到贪婪匹配,惰性匹配,先行断言(lookahead)和捕获等内容,但上面所总结的内容是 web 开发者在日常工作中最常用的一些功能与写法,想要看看一些复杂的正则表达式实例就请期待我们下一次的推送吧!