1,正则表达式会去查找字符串中符合某个模式的部分,在 JAVAScript 中,正则表达式的创建方法是放在一对"/"之间,或者用 newRegExp(),随后再调用 match,test 或者 replace 方法。
你可以事先定义正则表达式,也可以在调用方法时直接定义:
2,使用 match方法,一次匹配一个字符或者将多个字符放入方括号 []中以捕获任何匹配的字符,使用连字号 -来捕获特定范围的字符:
3,在正则表达式末尾添加可选的修饰符来定义表达式的匹配方式,在 JS 中,我们的修饰符有:
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 开发者在日常工作中最常用的一些功能与写法,想要看看一些复杂的正则表达式实例就请期待我们下一次的推送吧!