文件目录 - 使用正斜杠替换向后斜杠“\”“/”

时间:2018-03-21 17:08:48

标签: javascript html directory directory-structure

每天,我将网页文件保存在公共驱动器上。然后我必须将html文件的直接链接发送给客户端。

为此,我倾向于手动将文件夹目录中的所有反斜杠“\”转换为正斜杠“/”,并在开始时添加“http://”。

示例:

  

从   \\Public\Drive\PageLocation\
  至   http://Public/Drive/PageLocation/index.html

我已经开始使用find和replace选项了,但我觉得如果有某种代码在输入字段中转换这些路径会更好。

以下是我想到的内容的快速视觉效果:

*{font-family:sans-serif;}

p{
  font-weight:bold;
 }
<p>Folder Directory to URL </p>
<input type="text" placeholder="\\Public\Drive\PageLocation\">
<input type="submit" value="Convert">
<br>

<span>Result: http://Public/Drive/PageLocation/index.html</span>
<br/><br/>

<p>URL to Folder Directory </p>
<input type="text" placeholder="http://Public/Drive/PageLocation/index.html">
<input type="submit" value="Convert">
<br>

<span>Result: \\Public\Drive\PageLocation\</span>

我已经尝试过搞清楚JavaScript RegExp,但我没有找到太多运气使它成功。看起来它只能读取双反斜杠并忽略单曲:

var FolderDirectory = "\\Public\Drive\PageLocation";
var URLConvert = FolderDirectory.replace(/\\/g, "/");
alert(URLConvert);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

是否存在转换斜线的热键? 你们用什么?
有没有其他方法可以在本地转换斜杠?
你会推荐什么?

谢谢。

2 个答案:

答案 0 :(得分:0)

问题已经是你的开始字符串了。反斜杠被解释为转义字符。所以它们不存在于字符串中。但是,如果要在HTML表单中输入路径,则字符串已经以正确的方式包含反斜杠。请看这里我的简短例子。

&#13;
&#13;
    function convert(){
        var src_url = document.getElementById("path").value;
        var converted_url = src_url.replace("\\\\", "http://").replace(/\\/g, "/");
        alert(converted_url);
    }
&#13;
<input type="text" id="path" value="\\Public\Drive\PageLocation\">
<input type="button" value="convert" onclick="convert()">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你的正则表达式是完美的,问题是你正在改变的字符串。在javascript中,反斜杠(\)用于转义char。

  

反斜杠(\)转义字符将特殊字符转换为字符串字符...
Javascript Strings

以下是您想要做的工作示例:

&#13;
&#13;
<Method/>
&#13;
document.getElementById('input').onkeyup = function() {
  //when someone types in the input
  var v = this.value; //input's value
  if (v[0] === '\\') {
    //text entered is a url
    //                                add 'http:'        replace \ with /
    document.getElementById('result').textContent = 'http:' + v.replace(/\\/g, '/');
  } else {
    //text entered is a path
    //                                            remove http or https     replace / with \
    document.getElementById('result').textContent = v.replace(/https?:/g, '').replace(/\//g, '\\');
  }
}
&#13;
&#13;
&#13;