我几乎已经解决了这个问题,但是我正在VLC http界面上构建一个遥控器,但我在编码&
符号时遇到了问题。
例如,我得到的文件名看起来像
C:\Users\Me\Music\Library\I Need a Doctor feat(Eminem & Skylar Grey)
但是当我转义时,VLC得到的文件名为
C:\Users\Me\Music\Library\I Need a Doctor feat(Eminem
我该怎么做才能解决这个问题?
我的伪JavaScript:
function escapePath(string){
var fixed = "";
for(var i = 0; i < string.length; i++){
if(string[i] == "\\"){
fixed += "\\\\";
}
else if(string[i] == "&"){
fixed += "%26"; // Doesn't work with or without this
}
else{
fixed += string[i];
}
}
return encodeURIComponent(fixed);
}
我知道这很糟糕,但我无法让.replace()
正常工作。诅咒我对正则表达式的可怕知识。我稍后会解决这个问题
答案 0 :(得分:0)
感谢Marc B.它进行了一些调整。
最终的功能最终看起来像:
return encodeURIComponent(str.replace(/!/g, '%21').replace(/'/g, '%27').replace(/\*/g, '%2A').replace(/\\/g, "\\\\"));
我只希望我知道为什么会这样。