此问题已经在这里有了答案:
我希望所有单反斜杠都转换为双反斜杠
"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, '\\');
}
预先感谢
这应该起作用:
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函数中的'\\'
只是想用单个反斜杠替换匹配的模式。