文件目录 - 将反斜杠“\”替换为正斜杠“/”

File Directory - Replace Backward Slash "\" with Forward Slash "/"

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

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

示例:

From \Public\Drive\PageLocation\
To http://Public/Drive/PageLocation/index.html

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

以下是我的想法的简要说明:

*{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 正则表达式,但我没有找到让它发挥作用的运气。似乎它只能读取双反斜杠而忽略单斜杠:

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>

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

谢谢。

问题已经出在您的起始字符串上。反斜杠解释为转义字符。所以它们不存在于字符串中。但是如果你想以 HTML 的形式输入路径,字符串确实已经以正确的方式包含了反斜杠。看这里我的简短例子。

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

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

The backslash (\) escape character turns special characters into string characters...
Javascript Strings

这是您想要执行的操作示例:

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, '\');
  }
}
<input type=text placeholder="enter file path or url" id=input>
<p id='result'></p>