Javascript 替换单反斜杠“\&引用;带双反斜杠“\\&引用;

Javascript 替换单反斜杠“\&引用;带双反斜杠“\\&引用;,javascript,regex,replace,Javascript,Regex,Replace,我有一个带文件路径的字符串。我想用双反斜杠(\\)替换所有单反斜杠(\\) 控制台给我看了 c:asdlkjklsdfjkl 我发现了类似的东西,不幸的是它不起作用。 试试: var parts = replaceableString.split('\\'); var output = parts.join('\\\\'); 就我个人而言,由于我不太擅长reg EXP,所以在处理非字母数字字符时,我倾向于避免使用它们,这既是因为可读性,也是为了避免奇怪的错误。\n是一个转义

我有一个带文件路径的字符串。我想用双反斜杠(\\)替换所有单反斜杠(\\)

控制台给我看了

   c:asdlkjklsdfjkl
我发现了类似的东西,不幸的是它不起作用。 试试:

   var parts = replaceableString.split('\\');
   var output = parts.join('\\\\');

就我个人而言,由于我不太擅长reg EXP,所以在处理非字母数字字符时,我倾向于避免使用它们,这既是因为可读性,也是为了避免奇怪的错误。

\n是一个转义字符。因此,
replacablestring
不包含任何反斜杠

要解决此问题,您应该如下声明字符串:

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
这将提醒您
c:asdlkjklsdfjkl
,因为“\”是不考虑的转义字符

要在字符串中添加反斜杠,应执行以下操作

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert(replaceableString);
这将提醒您
c:\asd\flkj\klsd\ffjkl

如果希望字符串在默认情况下具有“\”,则应将其转义。。使用函数


您的代码中有几个问题

  • 要在字符串变量中获取
    \
    ,需要对其进行转义

    创建如下字符串时:
    replacablestring=“c:\asd\flkj\klsd\ffjkl”\
    的code>字符被视为转义序列。因此,在字符串创建过程中,它尝试解释转义序列
    \a
    ,因为这是无效的,所以它将
    a
    存储到字符串中。例如,
    \n
    将被解释为换行符

  • 我假设
    @
    来自一个.net示例。Javascript不知道“原始”字符串

  • 从正则表达式中删除引号

  • 这将满足您的要求:

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

    如果您无法控制要在其中查找反斜杠的字符串的内容,并且该字符串包含单个
    \
    值(例如变量myPath contains
    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;
    }
    }
    
    匹配(encodeURIComponent(inputString));
    功能匹配(输入)
    {
    
    对于(i=0;i在字符串中有一个反斜杠的情况下,javascript replace方法不允许我替换这个反斜杠

    相反,我必须使用split方法,该方法返回一个拆分字符串数组,然后连接字符串而不使用反斜杠(或任何您想要替换它的内容)

    解决方案(将反斜杠替换为下划线):


    首先对字符串进行编码

    然后将所有出现的%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);
    
    用于将双反斜杠替换为单正斜杠:

    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);
    

    在将值赋给变量之前,需要通过string.raw传递字符串的值

    var replacablestring=String.raw`c:\asd\flkj\klsd\ffjkl`.replace(/\\/g,“\\\\”);
    
    console.log(replaceableString)
    那里的
    @
    在做什么?您的字符串不包含\请查看大量的JavaScript正则表达式示例。这不是唯一一个多次解决的问题。很难相信写下一个问题所花费的时间比查找自己的时间要少。为什么需要这样做?不不是。您缺少对字符串在JavaScript中如何工作的基本理解。用户在输入字段中输入路径本身的事实。实时处理托管行,并替换所有“\”按键?@user2075057使其清晰,用户输入带有“\”的路径,因此您希望它保留在字符串中…?我的意思是不转义…?@Prasath K我想用我的java代码显示文件中的内容。@Prasath K我还想将输入字段中的信息保存在同一文件中。这是我的服务所需要的。这项任务我决定了,但如果我有进入双斜线,这不是一个漂亮的选择sight@user2075057转义输入字符串并使用它打开或保存文件。我的意思是转义('c:\asd\flkj\klsd\ffjkl');…检查我编辑的答案这不是答案,因为问题不是如何用正斜杠开始替换。
    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);