我在PhantomJS上使用Karma执行单元测试时获得SyntaxError: Parse error
。
PhantomJS 1.9.7 (Windows 7) ERROR
SyntaxError: Parse error
at d:/Path/To/File/index.html.js.js.js.js:11
PhantomJS 1.9.7 (Windows 7): Executed 0 of 0 ERROR (0.512 secs / 0 secs)
在提到的html文件的这一行,我有一个条件角度语句:
{{ condition && "String with an escaped \' apostrophe" || "Another string without any escaped characters."}}
当我删除这个转义的撇号时,它运行正常。我使用的是Angular 1.0.8,Karma 1.4.14和PhantomJS 1.9.7。我想知道是否有一个解决方法没有更新任何包。我非常想保留这个撇号。谢谢。
修改
在Chrome上我收到此错误:
Chrome 37.0.2062 (Windows 7) ERROR
Uncaught SyntaxError: Unexpected identifier
at d:/Path/To/File/index.html.js:11
Chrome 37.0.2062 (Windows 7): Executed 0 of 0 ERROR (2.576 secs / 0 secs)
答案 0 :(得分:2)
在JavaScript中,您不需要在双引号字符串中转义单引号。 "'"
生成带撇号的字符串。 "\'"
无效,因为\'
是无效的转义序列。如果你想在撇号之前产生一个带反斜杠的字符串,你需要做"\\'"
,转义反斜杠。