我有字符串的文件路径。 我想用双反斜杠(“\\”),以取代所有的单反斜线(“\”)。
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
var part = /@"\\"/g;
var filePath = replaceableString .replace(part, /@"\\"/);
console.log(filePath);
控制台给我吧。
c:asdlkjklsdfjkl
我发现这样的事情,遗憾的是它没有工作。 更换\以\\
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert(replaceableString);
这会提醒你c:asdlkjklsdfjkl
因为“\”是不被视为转义字符。
要在你的字符串反斜杠,你应该做这样的事情..
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert(replaceableString);
这会提醒你c:\asd\flkj\klsd\ffjkl
JS小提琴
了解转义序列这里
如果你希望你的字符串,默认情况下有“\”,你应该逃避它..使用逃生()函数
var replaceableString = escape("c:\asd\flkj\klsd\ffjkl");
alert(replaceableString);
JS小提琴
你在你的代码的几个问题。
要获得\
在字符串变量,你需要逃避它。
当你创建一个这样的字符串: replaceableString = "c:\asd\flkj\klsd\ffjkl";
用字符\
之前都被视为转义序列。 因此字符串创建过程中,它试图解释转义序列\a
,因为这是无效它存储的a
字符串。 例如, \n
将被解释为换行符。
我假设@
从.NET示例来了。 JavaScript不知道“原始”的字符串。
从你的正则表达式删除引号。
这将做你想要的:
var string = "c:\\asd\\flkj\\klsd\\ffjkl";
var regex = /\\/g;
var FilePath = string.replace(regex, "\\\\");
尝试:
var parts = replaceableString.split('\\');
var output = parts.join('\\\\');
就个人而言,我不是那么到Reg EXPS专家,我倾向于避免它们与非字母数字字符打交道时,既由于可读性和避免怪异的错误。
\是转义字符。 因此replaceableString
不包含任何反斜杠。
为了解决这个问题,你应该申报这样的字符串:
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
第一串编码
然后%5C%5C更换%5C的所有出现
在结束解码串
var result = encodeURI(input);
result=decodeURI(result.replace(/%5C/g,"%5C%5C"));
下面是答案:
对于一个正斜杠代替单反斜线 :
var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split('\\').join('/')
console.log(stringReplaced);
对于一个正斜杠替换双反斜线 :
var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split('\\\\').join('/')
console.log(stringReplaced);
如果你有以上的字符串你正在努力寻找在反斜线内容无法控制,它包含单\
值(如变量mypath中包含C:\Some\Folder\file.jpg
),那么你可以实际引用单在JavaScript反斜线作为String.fromCharCode(92)
所以,在我的文件路径例如获得上述文件名。
var justTheName = myPath.split(String.fromCharCode(92)).pop();
在字符串匹配的情况下,最好使用encodeURIComponent方法,decodeURIComponent。
match(encodeURIComponent(inputString));
function match(input)
{
for(i=0; i<arr.length; i++)
{
if(arr[i] == decodeURIComponent(input))
return true;
else return false;
}
}
在字符串中的一个反斜杠的情况下,JavaScript的替代方法并没有让我来代替单反斜线。
相反,我不得不使用它返回分割字符串数组的拆分方法,然后拼接没有反斜杠的字符串(或任何你想用来替换)
溶液(替换下划线反斜杠):
var splitText = stringWithBackslash.split('\\');
var updatedText = splitText[0] + '_' + splitText[1];