在Javascript中,我如何执行全局替换字符串与'/'和'/ g'中的变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我想在Javascript中使用String.replace执行全局替换字符串。

在我读到的文档中,我可以用/ g来做这件事,例如:

var mystring = mystring.replace(/test/g, mystring);

这将取代mystring内的所有事件。表达式没有引号。

但是,如果我有一个变量找到,我怎么能不用引号?

我试过这样的事情:

var stringToFind = "test";

//第一次尝试

mystring = mystring.replace('/' + stringToFind + '/g', mystring);

//第二次尝试,没有多少意义

mystring = mystring.replace(/stringToFind/g, mystring);

但他们不工作。有任何想法吗?

提问于
用户回答回答于

你可以使用prototype.js吗?如果是这样你可以使用String.gsub,就像

var myStr = "a day in a life of a thing";
 var replace = "a";
 var resultString = myStr.gsub(replace, "g");
 // resultString will be "g day in g life of g thing"

它也将采取正则表达式。对我而言,这是解决问题的更优雅方法之一。prototypejs gsub文档

用户回答回答于
var mystring = "hello world test world";
var find = "world";
var regex = new RegExp(find, "g");
alert(mystring.replace(regex, "yay")); // alerts "hello yay test yay"

扫码关注云+社区