首页 > 解决方案 > 将所有 \ 替换为 \\ - Javascript

问题描述

我在将字符串中出现的所有斜杠替换为双斜杠时遇到问题。现在这个问题正在阻止我打开文件,因此我需要“转义”路径中的所有斜杠。

路径看起来像这样:

C:\Folder\tmp\c235adf5b8c79ee61910a0c04abf9bc1

我想将所有斜杠替换为双斜杠,这样最终它看起来像这样:

C:\\Folder\\tmp\\c235adf5b8c79ee61910a0c04abf9bc1

我已经尝试过使用这个解决方案,但它对我不起作用:

str.replace(/\\/g, "\\\\");

上述解决方案的输出产生以下字符串:

C:Folder    mpc235adf5b8c79ee61910a0c04abf9bc1

编辑这是我试图解决问题的实际代码:

exports.register = function (req, res) {
    let user = new db.User();

    req.files.forEach(function(file) {
        const uploadDir = 'upload/' + user._id + '/' + file.name;
        const filePath = path.resolve('./' + file.path);

        console.log(filePath);
        ftp.put(filePath, uploadDir, function(err) {
            if(err) return console.log(err);

            console.log('Uploaded file: ' + file.name);
        });
    });
};

我省略了不相关的部分

标签: javascript

解决方案


\字符是 JavaScript 字符串文字中的转义字符。它不存在于字符串中。

您不能使用正则表达式来解决您的问题,因为它是您需要更改的源代码,而不是字符串本身中的数据。

当你得到字符串时,\字符将被解析并(例如)\t变成一个选项卡。此时操作数据以获取实际目录路径为时已晚。


推荐阅读