用双反斜杠"\\"替换单反斜杠"\"

Pil*_*iis 20 javascript regex replace

我有文件路径的字符串.我想用双反斜杠("\\")替换所有单反斜杠("\").

   var replaceableString = "c:\asd\flkj\klsd\ffjkl";
   var part = /@"\\"/g;
   var filePath = replaceableString .replace(part, /@"\\"/);
   console.log(filePath);
Run Code Online (Sandbox Code Playgroud)

控制台告诉我它.

   c:asdlkjklsdfjkl
Run Code Online (Sandbox Code Playgroud)

我发现这样的事情,不幸的是它没有用. 用\替换\

Pra*_*h K 10

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert(replaceableString);
Run Code Online (Sandbox Code Playgroud)

这会提醒您,c:asdlkjklsdfjkl因为'\'是一个不会被考虑的转义字符.

要在字符串中加一个反斜杠,你应该做这样的事情.

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert(replaceableString);
Run Code Online (Sandbox Code Playgroud)

这会提醒你 c:\asd\flkj\klsd\ffjkl

JS小提琴

在这里了解Escape序列

如果你希望你的字符串默认有'\',你应该将其转义..使用escape()函数

var replaceableString = escape("c:\asd\flkj\klsd\ffjkl");
alert(replaceableString);
Run Code Online (Sandbox Code Playgroud)

JS小提琴


Lit*_*eas 8

尝试:

   var parts = replaceableString.split('\\');
   var output = parts.join('\\\\');
Run Code Online (Sandbox Code Playgroud)

就个人而言,由于我不熟悉reg exps,因此在处理非字母数字字符时,我倾向于避免使用它们,这既是因为可读性,也是为了避免奇怪的错误.


ste*_*ema 7

您的代码中有几个问题.

  1. 要获取\字符串变量,您需要转义它.

    当您创建这样的字符串时:replaceableString = "c:\asd\flkj\klsd\ffjkl";带有\before的字符被视为转义序列.因此在字符串创建期间,它会尝试解释转义序列\a,因为它无效,因此会将其存储a到字符串中.例如,\n它将被解释为换行符.

  2. 我假设@它来自.net示例.Javascript不知道"原始"字符串.

  3. 从正则表达式中删除引号.

这会做你想要的:

var string = "c:\\asd\\flkj\\klsd\\ffjkl";
var regex = /\\/g;
var FilePath = string.replace(regex, "\\\\");
Run Code Online (Sandbox Code Playgroud)


sil*_*mar 5

Here is the answer:

For replacing single backslash with single forward slash:

var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split('\\').join('/')
console.log(stringReplaced);
Run Code Online (Sandbox Code Playgroud)

For replacing double backslash with single forward slash:

var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split('\\\\').join('/')
console.log(stringReplaced);
Run Code Online (Sandbox Code Playgroud)