在使用正则表达式时,如何解释JavaScript中的"$1,$2"?

23 浏览
0 Comments

在使用正则表达式时,如何解释JavaScript中的"$1,$2"?

一段JavaScript代码如下所示:

num = "11222333";
re = /(\d+)(\d{3})/;
re.test(num);
num.replace(re, "$1,$2");

我无法理解"$1,$2"的语法。这段代码来自一本书,书中说$1表示RegExp.$1$2表示RegExp.$2。但是这些解释引出了更多的问题:

  1. 已知在JavaScript中,变量的名称应以字母或下划线开头,那么$1怎么可以作为RegExp的成员变量的有效名称呢?

  2. 如果我输入$1,命令行会显示未定义;如果我输入"$1",命令行只会回显$1,而不是11222。那么,replace方法是如何知道"$1,$2"的含义的呢?

谢谢。

0