Javascript 正则表达式替换插入额外的斜杠

Javascript regex replace inserts extra slashes

本文关键字:正则表达式 替换 插入 Javascript      更新时间:2023-09-26

我正在尝试使用JavaScript清理文件。该文件包含如下文本行:

a <- b + c / d;

<-两侧有一串非空格时,我想用=替换所有<-,由一个空格分隔。理论上很容易:

line = "a <- b + c / d"
result = line.replace( /('S+) <- ('S+)/, /$1 = $2/ )

上面的代码在运行时会产生/a = b/ + c / d。但是,从概念上讲,它应该产生a = b + c / d .如何在不让 JavaScript 有机会随意插入斜杠的情况下使用 $1 样式的反向引用?

对第二个参数使用字符串:

result = line.replace( /('S+) <- ('S+)/, "$1 = $2" ); .

正在发生的事情是第二个参数正在从RegExp强制转换为String,这会在替换中添加斜杠。

替换的第二个参数不是正则表达式,而是字符串。

你需要像这样使用它:

result  = line.replace( /('S+) <- ('S+)/, '$1 = $2' );