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