RegExp 对象 (JavaScript)

$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);
}
原文地址:https://www.cnblogs.com/jiangxiaobo/p/6253109.html