文件目录 - 将反斜杠“\”替换为正斜杠“/”
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>
每天,我都会将网页文件保存在 public 驱动器上。然后我必须将 html 文件的直接 link 发送给客户端。
为此,我倾向于手动将文件夹目录中的所有反斜杠“\”转换为正斜杠“/”,并在开头添加 "http://"。
示例:
From
\Public\Drive\PageLocation\
Tohttp://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>