在JavaScript字符串中将' - '替换为' - '

时间:2016-01-17 06:56:47

标签: javascript string

我正在尝试用双破折号替换字符串中的单个破折号' - '字符。

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,'--')

3 个答案:

答案 0 :(得分:16)

在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

答案 1 :(得分:7)

字符串中的连字符与RegExp -中的连字符不同。虽然它们看起来很像,但它们是不同的角色。

在这种情况下,正确的RegExp是temp.replace(/–/g,'--')

答案 2 :(得分:4)

可能最简单的方法就是使用拆分和连接。

var temp = '2015–09–01T16:00:00.000Z'.split("-").join("--");