首页 > 技术文章 > JavaScript: 详解正则表达式之三

liuhe688 2017-01-13 08:18 原文

在上两篇文章中博主介绍了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('

推荐阅读