如果我{n}要用捕获的值替换字符串中出现的所有内容,如下所示:
"Replacing {1} multiple {2} occurrences.".replace(/\{(\d)\}/g, "$1")
Run Code Online (Sandbox Code Playgroud)
结果将是正确的:
Replacing 1 multiple 2 occurrences.
Run Code Online (Sandbox Code Playgroud)
另外,如果我要检查typeof更换"$1":
"Replacing {1} multiple {2} occurrences.".replace(/\{(\d)\}/g, typeof "$1")
Run Code Online (Sandbox Code Playgroud)
我会得到预期的结果:
Replacing string multiple string occurrences.
Run Code Online (Sandbox Code Playgroud)
我想做什么:
但是,我想要做的是使用捕获的值作为数组索引,为此,我想将捕获的值强制转换为数字parseInt,如下所示:
"Replacing {1} multiple {2} occurrences.".replace(/\{(\d)\}/g, parseInt("$1"))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会返回:
Replacing NaN multiple NaN occurrences.
Run Code Online (Sandbox Code Playgroud)
我的问题:
为什么我无法将这些捕获的值强制转换为数字?
javascript ×1