node.js string.replace不起作用?

Avi*_*Net 55 string replace node.js

var variableABC = "A B C"; 
variableABC.replace('B', 'D') //wanted output: 'A D C'
Run Code Online (Sandbox Code Playgroud)

但'variableABC'没有改变:

variableABC ='ABC'

当我希望它是'AD C'时.

Mun*_*nim 125

根据Javascript标准,String.replace不应该修改字符串本身.它只返回修改后的字符串.有关详细信息,请参阅Mozilla Developer Network文档.

您始终可以将字符串设置为修改后的值:

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

编辑:上面给出的代码仅替换第一次出现.

要替换所有实例,您可以执行以下操作:

 variableABC = variableABC.replace(/B/g, "D");  
Run Code Online (Sandbox Code Playgroud)

替换所有出现并忽略套管

 variableABC = variableABC.replace(/B/gi, "D");  
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 9

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

因此,如果您想修改variableABC,则需要执行以下操作:

var variableABC = "A B C";

variableABC = variableABC.replace('B', 'D') //output: 'A D C'
Run Code Online (Sandbox Code Playgroud)


Sri*_*sha 9

字符串总是被建模为不可变的(至少在更高级别的语言python/java/javascript/Scala/Objective-C).

因此,任何字符串操作(如连接,替换)总是返回包含预期值的新字符串,而原始字符串仍然是相同的.

  • 仅供参考:Ruby字符串_are_可变. (5认同)