var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
// ["mom and dad and baby", " and dad and baby", " and baby", index: 0, input: "mom and dad and baby", groups: undefined]
alert(matches.index); // 0, 匹配项在字符串中的位置
alert(matches.input); // "mom and dad and baby", 应用正则表达式的字符串
alert(matches[0]); // 数组第一项与整个模式匹配的字符串
alert(matches[1]); // 数组其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。
alert(matches[2]);
var pattern = new RegExp("\\[bc\\]at", "gi");
alert(pattern.toString()); // /\[bc\]at/gi
alert(pattern.toLocaleString()); // /\[bc\]at/gi
pattern.valueOf() // /\[bc\]at/gi
构造函数属性
var text = "this has been a short summer";
var pattern = /(.)hort/g;
// 注意:Opera 不支持 input、lastMatch、lastParen 和 multiline 属性 * Internet Explorer 不支持 multiline 属性
if (pattern.test(text)) {
alert(RegExp.input); // this has been a short summer
alert(RegExp.leftContext); // this has been a 短属性名方括号访问 alert(RegExp["$`"]);
alert(RegExp.rightContext); // summer
alert(RegExp.lastMatch); // short
alert(RegExp.lastParen); // s
alert(RegExp.multiline); // false
}