我在尝试从字符串替换反斜杠字符时遇到问题:
var g = myReadString;
g = g.replace("\", "\\\\");
它给出了一个无法识别字符的错误。
如何将简单的\
替换为四个\\\\
?
我将不胜感激, 谢谢。 Pandy
答案 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
第一个参数:字符串\
第二个参数:字符串\\\\