我正在尝试用双破折号替换字符串中的单个破折号' - '字符。
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,'--')
答案 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("--");