node.js string.replace不起作用?

var variableABC = "ABC"; variableABC.replace('B', 'D') //wanted output: 'ADC' 

但“variableABC”没有改变:

variableABC ='AB C'

当我想要它是'广告C'。

根据Javascript标准, String.replace不应该修改string本身。 它只是返回修改的string。 您可以参考Mozilla开发者networking文档获取更多信息。

您始终可以将string设置为修改后的值:

variableABC = variableABC.replace('B', 'D')

编辑:上面给出的代码是只replace第一次出现。

要replace所有的事件,你可以这样做:

  variableABC = variableABC.replace(/B/g, "D"); 

要replace所有的事件,并忽略套pipe

  variableABC = variableABC.replace(/B/gi, "D"); 

是不是string.replace 返回一个值,而不是修改源string?

所以如果你想修改variableABC,你需要这样做:

 var variableABC = "ABC"; variableABC = variableABC.replace('B', 'D') //output: 'ADC' 

string总是build模为不可变 (至less在高级语言python / java / javascript / Scala / Objective-C中)。

所以像串联这样的任何string操作,replace总是返回一个包含预期值的新string,而原始string仍然是相同的。

如果你只是想在不使用正则expression式的情况下将string的所有实例从string中删除,你可以使用:

  var replacestring = "ABBCD" const oldstring = "B"; const newstring = "E"; while (replacestring.indexOf(oldstring) > -1) { replacestring = replacestring.replace(oldstring, newstring); } //result: "AEECD"