Javascript 使用反斜杠有效地生成文件夹路径

Javascript 使用反斜杠有效地生成文件夹路径,javascript,jquery,regex,Javascript,Jquery,Regex,我需要将文件夹路径发送到MySQL。所以我避开了每一个反斜杠。通过javascript发送的路径为: \\\\192.168.0.1\\foo\\bar 最终将保存为(以db为单位): 因此,我编写了以下代码: fpath = fpath.replace(/\\+/g,'\\\\'); // Replace multiple occurences of backslash with double backslash var fpathLen = fpath.l

我需要将文件夹路径发送到MySQL。所以我避开了每一个反斜杠。通过javascript发送的路径为:

\\\\192.168.0.1\\foo\\bar
最终将保存为
(以db为单位)

因此,我编写了以下代码:

        fpath = fpath.replace(/\\+/g,'\\\\'); // Replace multiple occurences of backslash with double backslash

        var fpathLen = fpath.length;

        if(fpath.charAt(fpathLen-1) == '\\')
            fpath = fpath.substring(0,fpathLen-2); // Remove the trailing backslash if any

        if(fpath.charAt(0) == '\\') {
            fpath = '\\\\' + fpath;  // Add 2 more backslash before sending the string to MySQL
        }
        else
            fpath = '\\\\\\\\' + fpath; // If string is without a leading backslash, insert 4 backslash
但这似乎不是一种有效的做事方式!例如,我手动添加了
4
,在另一种情况下,添加了
8
反斜杠,使
2
4
分别位于
js
一侧。有没有更好的方法来实现这一点

编辑:
对于像
fpath=\\1.1.1.1这样的输入路径,输出应该是
\\\192.168.0.1\\foo\\bar
编辑:

您可以通过两个正则表达式执行此操作:

fpath = fpath.replace(/\\+/g,'\\\\');

演示:

函数makeFpath(){
fpath=document.getElementById(“fpath”).value
fpath=fpath.replace(/\+/g,“\\\\”).replace(/^\*(.*?\\*$/,“\\$1”);
document.getElementById(“out”).innerHTML=fpath
}
makeFpath()


要求将
\\\\\192.168.0.1\\foo\\bar
替换为
\\192.168.0.1\foo\bar
?@guest271314否。对于以下输入路径:
\\192.168.0.1\foo\bar`需要转换为
\\\192.168.0.1\\foo\\bar`如果
fpath=\\1.1.1\foobar\\\\\\\配置会发生什么?我应该处理这个问题,它应该变成
\\\\1.1.1\\foo\\bar\\config`你的问题中没有提到这一点:(请更新一下,这个问题并不明显。但我想,现在答案是你想要的
fpath = fpath.replace(/\\+/g,'\\\\');
fpath = fpath.replace(/^\\*(.*?)\\*$/,'\\\\\\\\$1');