我正在尝试弄清楚id
的分配在以下代码段中的含义,尤其是'-$1'
。我确实看到它正在获取DOM元素文本并交换其他内容,然后降低结果。我只是不明白被交换的内容。
for (var k in ui) {
var id = k.replace(/([A-Z])/, '-$1').toLowerCase();
var element = document.getElementById(id);
if (!element) {
throw "Missing UI element: " + k;
}
ui[k] = element;
}
答案 0 :(得分:6)
' - 1'在javascript中是什么意思?
无。但$1
替换字符串中的replace
是指第一个捕获组,说“在此处包含替换中的第一个捕获组”。 -
是要包含在替换中的文字文本。
var id = k.replace(/([A-Z])/, '-$1').toLowerCase();
// Capture group ^ ^
该调用的作用是将英文字母(A-Z
)中的第一个大写字母替换为短划线,后跟字符(然后将.toLowerCase()
替换为将字符串转换为全部更低-案件)。例如,“testingABC”变为“testing-abc”。 (这只是第一个大写字母,因为正则表达式上没有“全局”[g
]标志。)
在这种特殊情况下,代码不需要使用捕获组,它可以是:
var id = k.replace(/[A-Z]/, '-$&').toLowerCase()
$&
指的是整场比赛。