在上两篇文章中博主介绍了JavaScript中的正则常用方法和正则修饰符,今天准备聊一聊元字符和高级匹配的相关内容。
首先说说元字符,想必大家也都比较熟悉了,JS中的元字符有以下几种:
/ \ | . * + ? ^ $ ( ) [ ] { }
它们都表示特殊的含义,下面我们就来一一介绍它们。
/ (slash)
用于创建一个字面量的正则表达式:
var re = /abc/;
\ (backslash)
用于对其他字符进行转义,我们称其为转义字符,上面列举的几个元字符,由于它们都表示特殊的含义,如果要匹配这些元字符本身,就需要转义字符的帮忙了,比如我们要匹配一个斜杠 / 的话,就需要像下面这样:
/\//.test('a/b');
| (vertical bar)
一般用于两个多选分支中,表示“或”的关系,有了它,我们就能匹配左右两边任意的子表达式了,下面例子匹配单词see或sea:
/see|sea/.test('see'); // true /see|sea/.test('see'); // true
. (dot)
匹配除换行符以外的任意字符,我们可以使用它来匹配几乎所有的字母或字符,除了\r (\u000D carriage return)和\n (\u000A new line),看下面例子:
/./.test('w'); // true
/./.test('$'); // true /./.test('\r'); // false
/./.test('\n'); // false
但需要注意的是,如果遇到码点大于0xFFFF的Unicode字符,就不能识别了,必须加上u修饰符:
/^.$/.test('