This question already has answers here:
Replace method doesn't work

(4个答案)


2年前关闭。




我试图用双破折号替换字符串中的单破折号'-'字符。
2015–09–01T16:00:00.000Z

to be

2015-–09-–01T16:00:00.000Z

这是我正在使用的代码,但似乎无法正常工作:
var temp = '2015–09–01T16:00:00.000Z'
temp.replace(/-/g,'--')

最佳答案

在JavaScript中,字符串是不可变的。因此,当您修改字符串时,将通过修改创建一个新的字符串对象。

在您的情况下,replace替换了字符,但返回了新字符串。您需要将其存储在变量中以使用它。

例如,

var temp = '2015–09–01T16:00:00.000Z';
temp = temp.replace(/–/g,'--');

注意在问题中显示的字符串,在复制时,我意识到它是different character,但看起来类似于,并且与连字符(-)不同。这些字符的字符代码如下
console.log('–'.charCodeAt(0));
// 8211: en dash
console.log('-'.charCodeAt(0));
// 45: hyphen

09-25 16:27