首页 > 解决方案 > 单反斜杠到双反斜杠转换

问题描述

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

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

提前致谢

标签: javascriptstringreplacestr-replace

解决方案


这应该有效:

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

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

从我看到你有2个问题:

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

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

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

其次,是因为该\字符是转义字符,所以'\\'在您的替换函数中只是想用一个反斜杠替换匹配的模式。


推荐阅读