单反斜杠到双反斜杠的转换

时间:2019-10-03 01:57:30

标签: javascript string replace str-replace

我希望所有单反斜杠都转换为双反斜杠

"C:\Users\MyName\ringtone.mp3"-> "C:\\Users\\MyName\\ringtone.mp3"

但是由于某种原因,它返回"C:UsersMyNameingtone.mp3"

到目前为止,我已经尝试过escape()函数和encodeURI()函数,但是它们也不起作用。字符串的一部分来自nodejs OS模块,该模块仅在Windows上返回一个反斜杠(homedir()函数)。 这是我到目前为止在功能中所拥有的

function normalize(path: string): string {
   return path.normalize().replace(/\\/g, '\\');
}

预先感谢

1 个答案:

答案 0 :(得分:1)

这应该有效:

var original = 'C:\\Users\\MyName\\ringtone.mp3';
var replaced = original.normalize().replace(/\\/g, '\\\\');

console.log('Original: ' + original);
console.log('Replaced: ' + replaced);

据我所见,您有两个问题:

首先,您似乎正在像这样初始化字符串:

var original = 'C:\Users\MyName\ringtone.mp3'

这将使您的实际字符串值为C:UsersMyNameingtone.mp3,因为javascript中的\字符表示转义字符。

第二,因为\是转义字符,所以replace函数中的'\\'只是想用单个反斜杠替换匹配的模式。