1. 语法

有两种定义正则表达式的方式

eg:

var pattern = /at/gi;

eg:

var pattern2 = new RegExp("at", "gi");

这两种写法其实效果是一样的,都是创建了一个新的 RegExp 实例

RegExp 的每个实例都有以下属性:


2. 怎么用

简单的字符串匹配可以用 String.match() 方法。 eg:

var str = "cat, bat, sat, fat";
var pattern = /.at/g;
str.match(pattern);

输出:

如果只需要知道是否有匹配而不关心内容,可以用 RegExp.test() 方法。该方法返回布尔值,表示是否匹配成功。 eg:

var str = "cat, bat, sat, fat";
var pattern = /.at/g;
pattern.test(str);

输出:

如果需要用到捕获组的时候,用 RegExp.exec() 方法。该方法返回匹配结果,没有匹配成功时则返回 null。 eg:

var pattern = /aaa and (bbb and (ccc))/g;
var text = "this is aaa and bbb and ccc";
pattern.exec(text);

输出:
其中数组中第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串。如果模式中没有捕获组,则该数组只包含一项。