单反斜杠到双反斜杠的转换[重复]

问题描述 投票:0回答:1

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

"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, '\\');
}

预先感谢

javascript string replace str-replace
1个回答
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函数中的'\\'只是想用单个反斜杠替换匹配的模式。

© www.soinside.com 2019 - 2024. All rights reserved.