【问题标题】:Jquery- backslash characterJquery-反斜杠字符
【发布时间】:2011-05-18 12:09:11
【问题描述】:

我在尝试替换字符串中的反斜杠时遇到问题:

var g = myReadString;
g = g.replace("\", "\\\\");

它给出了无法识别字符的错误。

一个简单的\怎么能换成四个\\\\

如果有任何帮助,我将不胜感激, 谢谢。 潘迪

【问题讨论】:

    标签: javascript replace escaping


    【解决方案1】:

    \‍ 是转义序列的开始。如果您打算按字面意思写\‍,则需要写\\,这也是一个转义序列,将被解释为单个\‍。所以如果你想用四个\\\\替换一个\‍,你需要这样写:

    g.replace("\\", "\\\\\\\\")
    

    但这只会替换第一次出现的单个\‍。要进行全局替换,您需要使用带有全局匹配修饰符的正则表达式:

    g.replace(/\\/g, "\\\\\\\\")
    

    【讨论】:

    • 我认为 OP 实际上想用 四个 文字反斜杠替换单个反斜杠。
    【解决方案2】:
    g = g.replace(/\\/g, "\\\\");
    

    我认为这就是您正在寻找的。如果没有,请告诉我。

    【讨论】:

    • 朋友你好,它不起作用。它不会替换字符。例如,我想要: IN: "myvalue\assa" (1 个反斜杠) OUT: "myvalue\\\\assa"
    • @Samuel Beckett 在这种情况下,您实际上必须替换为八个(!)反斜杠(即四个转义的反斜杠)。
    【解决方案3】:

    反斜杠也用作转义字符。您可以在此页面上找到字符列表...http://www.c-point.com/javascript_tutorial/special_characters.htm

    因此,为了搜索或替换反斜杠,您必须对反斜杠进行转义。我实际上只是运行了您的代码,但它不起作用,因为反斜杠正在转义第一个引号。你到底想做什么?如果你想用一个双反斜杠替换每个单反斜杠,你需要这样的东西。

    var g = myReadString;
    g = g.replace("\\", "\\\\");
    

    希望有帮助!

    【讨论】:

    • 谢谢!,有效的解决方案是:g = g.replace("\\", "\\\\\\\\");
    • 没问题!很高兴能提供帮助。
    【解决方案4】:

    一般中确保始终正确转义。

    replace() 的第一个参数中,您打算传递一个包含\ 的字符串,但它以", (引号-逗号-空格)结尾!这是因为您实际上是在转义字符串上的“关闭”引号:

    g = g.replace("\", "\\\\");
                  ^    ^
                  s    e
                  t    n
                  a    d
                  r
                  t
    

    现在第一个参数是字符串引号逗号空格。其余给出语法错误!

    你想要什么:

    g = g.replace("\\", "\\\\\\\\");
                  ^  ^  ^        ^
                  s  e  s        e
                  t  n  t        n
                  a  d  a        d
                  r     r
                  t     t
    

    第一个参数:字符串\
    第二个参数:字符串\\\\

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      相关资源
      最近更新 更多