在使用正则表达式时,如何解释JavaScript中的"$1,$2"?
- 论坛
- 在使用正则表达式时,如何解释JavaScript中的"$1,$2"?
23 浏览
在使用正则表达式时,如何解释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
。但是这些解释引出了更多的问题:
- 已知在JavaScript中,变量的名称应以字母或下划线开头,那么
$1
怎么可以作为RegExp的成员变量的有效名称呢? - 如果我输入
$1
,命令行会显示未定义;如果我输入"$1"
,命令行只会回显$1
,而不是11222。那么,replace
方法是如何知道"$1,$2"
的含义的呢?
谢谢。