Javascript 在捕获组前面插入$

Javascript 在捕获组前面插入$,javascript,regex,regex-group,Javascript,Regex,Regex Group,我有以下输入文本: string name; string type; string class; ... 我希望将其转换为以下内容: string $name; string $type; string $class; ... 我在regex的尝试: Javascript: "string name;".replace(/string (\w+)/,"string \$$1"); Produces (javascript console): string $1; string $1; st

我有以下输入文本:

string name;
string type;
string class;
...
我希望将其转换为以下内容:

string $name;
string $type;
string $class;
...
我在regex的尝试:

Javascript:
"string name;".replace(/string (\w+)/,"string \$$1");
Produces (javascript console):
string $1;
string $1;
string $1;
...
Produces (regexr prompt):
string \$1;
string \$1;
string \$1;
...
为什么在第一个$前面插入反斜杠不起作用?实现这一点的正确表达方式是什么


注意:我正在使用(运行客户端javascript)批处理我的文本、javascript控制台和Chrome Devtools中的
字符串.prototype.replace
函数来测试连续$symbol的行为。

javascript字符串中的反斜杠只有在转义序列中才有意义-例如,
'\n'
被转换为文字换行,
'\\'
被转换为文字反斜杠等。如果在不属于转义序列的字符之前有反斜杠,如
'\$'
,反斜杠将被忽略:

const str='\$';
console.log(str);

console.log(str.length)由于您正在搜索“
string\w+
”的组合,因此可以使用更简单的搜索和替换:

str.replace(/string /g, "string $")
这会在每个
字符串后添加$,后跟空格

var str=“字符串名称;\n字符串类型;\n字符串类;”
日志(“原始:”)
console.log(str);
日志(“新:”)
log(str.replace(/string/g,“string$”)