2013-07-31 58 views
0

我想清理使用JavaScript的文件。該文件包含的文本行是這樣的: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。我怎樣才能使用$1風格的反向引用,而不允許JavaScript有機會插入斜線?

回答

3

使用第二個參數的字符串:

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

發生了什麼是第二個參數被強制從RegExpString其中添加斜槓替換。

0

替換的第二個參數不是正則表達式,而是字符串。

您需要使用這樣的:

result = line.replace(/(\S+) <- (\S+)/, '$1 = $2'); 
相關問題