正则表达式来替换引号之间的值

问题描述:

我试图替换文件中的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

尝试......

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