javascript正则表达式之$1...$9

一直不明白JS正则$1...$9是什么用途。

写个小例子,频频报错:

1、引用$1...$9,是通过RegExp来的,而不是新建立的RegExp对象名;

2、你创建的正则对象,被括弧括起来的部分,从左到右,依次是$1...$9,

这说明,没有括弧,你也甭想通过,RegExp.$1...$9,拿到任何东西;

下面例子是从javascript帮助文档摘抄的:

function matchDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 contains: " + RegExp.$1 + "\n";
   s += "$2 contains: " + RegExp.$2 + "\n";
   s += "$3 contains: " + RegExp.$3;
   return(s);
}

上面例子运行结果:

$1是第一个括弧中的(b+)大小写忽略,所以是bB

$2是第二个括弧中的(d),d

$3没有,空。

相关推荐