【问题标题】:javascript string.replace(var1, var2) [duplicate]javascript string.replace(var1, var2) [重复]
【发布时间】:2020-07-13 07:16:31
【问题描述】:

我发现很多问题几乎可以回答我的问题,例如myString.replace( VARIABLE, "") ...... but globally,但它们都缺少一个细节。

我想做这样的事情

var clipText = "aaabccc";
var replaceStr = "abc";
var withStr = "def";
clipText = clipText.replace(/replaceStr/g, withStr);

也就是说,使用两个变量作为replace 的参数,但replace 似乎按字面意思解释变量名称,而不是使用它们的赋值。我还想替换所有出现的地方,因此replaceStr 之后的g

什么给了?

【问题讨论】:

  • @quentin 请解释链接的问题如何适用于我的情况。我不需要正则表达式。
  • /replaceStr/g 是一个正则表达式!!

标签: javascript string variables replace


【解决方案1】:

你可以尝试使用RegExp构造函数:

var clipText = "aaabccc";
var replaceStr = "abc";
var withStr = "def";
var regex = new RegExp(replaceStr,"g");
clipText = clipText.replace(regex, withStr);
console.log(clipText);

【讨论】:

  • 我是否需要在我的情况下使用正则表达式?我这样做没有问题,但是replace 只接受文字字符串,而不是包含文字字符串的变量,这似乎非常特别!?!?
  • @d-b,如果你想使用变量,那么你必须使用new RegExp(),虽然你可以直接使用文本...clipText.replace(/abc/g, withStr);:)
  • 但是你的例子中的 abc 不是变量?
  • @db,这就是我想说的,如果你将文本 (abc) 放在变量中,那么你必须使用new RegExp():)跨度>
  • 这很奇怪。它值得提出自己的问题。甚至 Perl 也可以这样工作(即,没有引号或类似的字符串被视为字符串而不是变量)??
猜你喜欢
  • 2015-06-17
  • 1970-01-01
  • 2013-08-21
  • 2011-04-02
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多