转换字符串

时间:2010-10-06 13:02:31

标签: javascript jquery

如何转换字符串

This:
file:///C://Program%20Files//Microsoft%20Office//OFFICE11//EXCEL.EXE 

To this:
C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE 

4 个答案:

答案 0 :(得分:3)

这样的事情可以解决问题:

function getPath(url) {
  return  decodeURIComponent(url).replace("file:///","").replace(/\//g,"\\");
}

You can try it out here

答案 1 :(得分:2)

Unescape,替换file:///并替换//

// if you face problems with IE use `unescape` instead.
var d = decodeURIComponent("file:///C://Program%20Files//Microsoft%20Office//OFFICE11//EXCEL.EXE")
d = d.replace(/file:\/\/\//i, "").replace(/\/\//g, "\\\\");

返回

"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"

使用单个反斜杠

d = d.replace(/file:\/\/\//i, "").replace(/\/\//g, "\\");

结果是

"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"

答案 2 :(得分:0)

此解决方案避免了不必要的替换:

var input = "file:///C://Program%20Files//Microsoft%20Office//OFFICE11//EXCEL.EXE";

// Remove file:///
if (input.length > 8 && input.substr(0, 8) == "file:///")
  input = input.substr(8);

input = decodeURIComponent(input).replace(/\/\//g, "\\\\"));

答案 3 :(得分:0)

使用decodeURIComponent修复%20和类似的网址转义字符。然后简单地对路径名进行子串(在字符串位置8之后),并使用split / join将//替换为\\

...或

var original = "file:///C://Program%20Files//Microsoft%20Office//OFFICE11//EXCEL.EXE ";

var fixed = decodeURIComponent(original.substr(8)).split('//').join('\\');

您可以使用替换而不是分割/连接。