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"