我在尝试替换字符串中的反斜杠字符时遇到了问题:
var g = myReadString;
g = g.replace("\", "\\\\");
出现了未识别字符的错误。
如何用四个\\\\
替换简单的\
呢?
非常感谢任何帮助,谢谢。
我在尝试替换字符串中的反斜杠字符时遇到了问题:
var g = myReadString;
g = g.replace("\", "\\\\");
出现了未识别字符的错误。
如何用四个\\\\
替换简单的\
呢?
非常感谢任何帮助,谢谢。
\
是转义序列的开始。如果您想要写出字面上的\
,您需要编写另一个转义序列\\
,它将被解释为单个的\
。因此,如果您想用四个\\\\
替换一个\
,您需要编写以下内容:
g.replace("\\", "\\\\\\\\")
但是这只会替换第一个单一的\
。要进行全局替换,需要使用带有全局匹配修饰符的正则表达式:
g.replace(/\\/g, "\\\\\\\\")
反斜杠也可以作为转义字符。您可以在此页面上找到字符列表... http://www.c-point.com/javascript_tutorial/special_characters.htm
因此,为了搜索或替换反斜杠,您必须转义反斜杠。我刚刚运行了您的代码,但它不起作用,因为反斜杠正在转义第一个引号。您究竟想做什么?如果您想将每个单个反斜杠替换为双反斜杠,则需要像这样的东西。
var g = myReadString;
g = g.replace("\\", "\\\\");
希望这能帮到你!
g = g.replace(/\\/g, "\\\\");
我认为这就是你要找的。如果不是,请告诉我。
通常情况下,请确保始终正确转义。
在您为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
第一个参数:字符串\
第二个参数:字符串\\\\