Jquery-反斜杠字符

时间:2010-12-01 13:19:10

标签: javascript replace escaping

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

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

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

如何将简单的\替换为四个\\\\

我将不胜感激, 谢谢。 Pandy

4 个答案:

答案 0 :(得分:8)

\‍是转义序列的开头。如果你的意思是按字面意思写\‍,你需要编写一个转义序列\\,并将被解释为单\‍。因此,如果您想将一个\‍替换为四个\\\\,则需要写下:

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

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

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

答案 1 :(得分:0)

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

我认为这就是你要找的东西。如果没有,请告诉我。

答案 2 :(得分:0)

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

因此,为了搜索或替换反斜杠,您必须逃避反斜杠。我实际上只是运行你的代码,它不起作用,因为反斜杠是逃避第一个引用。你究竟想做什么?如果你想用double替换每个单反斜杠,你需要这样的东西。

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

希望有所帮助!

答案 3 :(得分:0)

general 中,请确保始终正确转义。

replace()的第一个参数中,您打算传递一个包含\的字符串,但最终会以", (quote-comma-space)结束!这是因为你实际上是在转义字符串上的“结束”引号:

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

现在第一个参数是字符串quote-comma-space。其余的给出语法错误!

你想要的是什么:

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

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