2013-05-08 119 views
0

我試圖替換文件中的2個變量值。我將nodejs中的文件內容讀入一個字符串。我需要搜索這些變量並替換它們的值。正則表達式來替換引號之間的值

原始字符串

var useStub = false;var serviceUrl = 'http://servicetest.test.com'; 

我要像

var result = someFile.replace(regex, 'http://servicestage.stage.com'); 
var result = someFile.replace(regex, 'true'); 

運行某種命令的該命令我要像

var useStub = true;var serviceUrl = 'http://servicestage.stage.com';  

輸出我試着一對夫婦正則表達式的後模式,但它沒有得到我需要的輸出。正則表達式我有很少的exp。有人可以幫我弄這個嗎?


終於在@FloatingCoder的幫助下工作了。

var text = "var useStub=false;var serviceUrl='http://servicetest.test.com';var hello='sdfdsfs';"; 
text = text.replace(/var serviceUrl='.*?';/, "var serviceUrl='http://newurl.test.com';"); 
text = text.replace(/var useStub=.*?;/, "var useStub=true;"); 
console.info(text); 

Here is the fiddle for others

+0

你想將servicetest更改爲servicestage? – Robert 2013-05-08 07:16:42

+0

我實際上想要改變引號之間的整個url以及useStub變量的布爾值。 – blessenm 2013-05-08 07:18:56

回答

2

嘗試......

var text = "var useStub = false;var serviceUrl = 'http://servicetest.test.com';"; 

text = text.replace(/var serviceUrl = '.*?';/, "var serviceUrl = 'http://newurl.test.com';"); 
text = text.replace(/var useStub = .*?;/, "var useStub = true;"); 

document.getElementById("output").innerHTML = text; 

這可能需要更多的調整,取決於還有什麼是在文件中,但你給什麼,這將工作。

有一個JSFiddle與here玩。

+0

如果替換是在單獨的字符串上完成的,這似乎工作。最終的輸出只有'var useStub = true;'。另一個變量在第二個替換命令中被刪除。在這裏我更新了小提琴。 http://jsfiddle.net/JjVzz/3/ – blessenm 2013-05-08 08:18:32

+0

我試圖修改你的小提琴。如果有另一個變量聲明,如var hello ='ss';. hello變量也將在第一個正則表達式中匹配。這裏是小提琴http://jsfiddle.net/JjVzz/5/ – blessenm 2013-05-08 08:36:57

+0

得到它的工作http://jsfiddle.net/JjVzz/6/ – blessenm 2013-05-08 10:40:05