Javascript\\b字符串转义问题

Javascript\\b字符串转义问题,javascript,string,Javascript,String,很抱歉,这个问题可能很愚蠢,但我正在尝试创建一个以“\begin”(我正在构建一个LaTeX文档)开头的字符串。我不知道如何让它正确解析。只需将\替换为\就可以在“\end”中正常工作——我只需键入“\\end”。问题似乎是\b在正则表达式中被用来表示。我认为“\\”+“begin”可能会起作用,但这似乎给出了相同的行为。考虑到我可能会遇到很多这样的情况,一般来说,什么是解决这个问题的最佳方法 用另一个\转义\对我来说很好: \是JavaScript字符串中的转义字符。如果希望字符串包含\字符

很抱歉,这个问题可能很愚蠢,但我正在尝试创建一个以“\begin”(我正在构建一个LaTeX文档)开头的字符串。我不知道如何让它正确解析。只需将
\
替换为
\
就可以在
“\end”
中正常工作——我只需键入
“\\end”
。问题似乎是
\b
在正则表达式中被用来表示。我认为
“\\”+“begin”
可能会起作用,但这似乎给出了相同的行为。考虑到我可能会遇到很多这样的情况,一般来说,什么是解决这个问题的最佳方法

用另一个
\
转义
\
对我来说很好:


\
是JavaScript字符串中的转义字符。如果希望字符串包含
\
字符,则必须使用额外的
\
字符:

“\\”
计算结果为包含
\
的字符串


\
是JavaScript正则表达式中的转义字符。如果希望正则表达式包含
\
字符,则必须使用额外的
\
字符:

/\\/
计算结果为与
\
匹配的正则表达式

因此,使用字符串构建的正则表达式需要双重转义
\
字符,一次转义字符串,一次转义正则表达式:

newregexp(“\\\\”)
计算结果为包含
\\
的字符串,该字符串的计算结果为与
\
匹配的正则表达式

要使正则表达式匹配
\begin
,只需在正则表达式后面加上
begin

/\\begin/               //regex literal
new RegExp('\\\\begin') //regex constructor

'\\end'
可能在正则表达式中工作,因为与
\b
不同,
\e
没有特殊含义。但这并不意味着你不应该像Zzzbov的回答中所描述的那样正确地逃避它。
'\\e'
可能有效,因为
\e
在正则表达式(afaik)中没有意义,但是
\b
有意义。感谢你指出——问题实际上是我使用的将字符串写入文件的方法,同样的编码问题再次出现。它现在开始工作了!