Javascript 使用反斜杠有效地生成文件夹路径
我需要将文件夹路径发送到MySQL。所以我避开了每一个反斜杠。通过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
\\\\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');