RegExp 对象 (JavaScript)

时间:2022-05-05 07:11:59

$1...$9 属性 (RegExp) (JavaScript)

返回在模式匹配期间找到的,所存储的最近的九个部分。只读。

RegExp.$n
RegExp

始终为全局 RegExp 对象。

n

1 至 9 之间的任意整数。

每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。

下面的示例执行正则表达式搜索。它显示了全局 RegExp 对象中的匹配项和子匹配项。子匹配项是 $1…$9 属性中包含的成功的带括号匹配项。该示例还显示了由 exec 方法返回的数组中的匹配项和子匹配项。

var newLine = "<br />";

var re = /(\w+)@(\w+)\.(\w+)/g
var src = "Please send mail to george@contoso.com and someone@example.com. Thanks!" var result;
var s = ""; // Get the first match.
result = re.exec(src); while (result != null) {
// Show the entire match.
s += newLine; // Show the match and submatches from the RegExp global object.
s += "RegExp.lastMatch: " + RegExp.lastMatch + newLine;
s += "RegExp.$1: " + RegExp.$1 + newLine;
s += "RegExp.$2: " + RegExp.$2 + newLine;
s += "RegExp.$3: " + RegExp.$3 + newLine; // Show the match and submatches from the array that is returned
// by the exec method.
for (var index = 0; index < result.length; index++) {
s += index + ": ";
s += result[index];
s += newLine;
} // Get the next match.
result = re.exec(src);
}
document.write(s); // Output:
// RegExp.lastMatch: george@contoso.com
// RegExp.$1: george
// RegExp.$2: contoso
// RegExp.$3: com
// 0: george@contoso.com
// 1: george
// 2: contoso
// 3: com // RegExp.lastMatch: someone@example.com
// RegExp.$1: someone
// RegExp.$2: example
// RegExp.$3: com
// 0: someone@example.com
// 1: someone
// 2: example
// 3: com

index 属性 (RegExp) (JavaScript)

返回字符位置,它是被搜索字符串中第一个成功匹配的开始位置。只读。

RegExp.index

与此属性关联的对象始终为全局 RegExp 对象。

index 属性是从零开始的。 index 属性的初始值是 –1。每当产生成功匹配时,其值就会相应更改。

下面的示例阐释了 index 属性的用法。该函数重复一个字符串搜索,并打印出字符串中每一个词的 index 和 lastIndex 值。

function RegExpTest()
{
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
if (ver < 5.5)
{
document.write("You need a newer version of JavaScript for this to work");
return;
} var src = "The quick brown fox jumps over the lazy dog."; // Create regular expression pattern with a global flag.
var re = /\w+/g; // Get the next word, starting at the position of lastindex.
var arr;
while ((arr = re.exec(src)) != null)
{
// New line:
document.write ("<br />");
document.write (arr.index + "-" + arr.lastIndex + " ");
document.write (arr);
}
}

input 属性 ($_) (RegExp) (JavaScript)

返回执行正则表达式搜索所针对的字符串。只读。

RegExp.input

与此属性关联的对象始终为全局 RegExp 对象。

只要搜索字符串发生更改,就可以修改 input 属性的值。

下面的示例阐释了 input 属性的用法:

function inputDemo(){
var s;
var re = new RegExp("d(b+)(d)","ig");
var str = "cdbBdbsbdbdz";
var arr = re.exec(str);
s = "The string used for the match was " + RegExp.input;
return(s);
}