对不起这个可能很愚蠢的问题,但我正在尝试以“\ begin”开头的字符串(我正在构建一个LaTeX文档)。我无法弄清楚如何正确解析它。只需将\
替换为\\
,"\end"
就行了 - 我只需输入"\\end"
即可。问题似乎是\b
用于正则表达式。我认为"\\" + "begin"
可能会起作用,但这似乎会产生相同的行为。考虑到我可能会碰到很多这种情况,一般来说解决这个问题的最佳方法是什么?
答案 0 :(得分:1)
\
是JavaScript字符串中的转义字符。如果您希望字符串包含\
字符,则必须使用其他\
字符:
'\\'
评估为包含\
。
\
是JavaScript正则表达式中的转义字符。如果您希望正则表达式包含\
字符,则必须使用其他\
字符:
/\\/
评估为匹配\
使用字符串构建的正则表达式因此需要双重转义\
字符,一次用于字符串,一次用于正则表达式:
new RegExp('\\\\')
求值为包含\\
的字符串,该字符串的计算结果为与\
匹配的正则表达式。
要使正则表达式与\begin
匹配,您只需要使用begin
为正则表达式后缀:
/\\begin/ //regex literal
new RegExp('\\\\begin') //regex constructor
答案 1 :(得分:0)