2014-10-03 8 views
1

PhantomJS에서 Karma를 사용하여 단위 테스트를 실행하는 동안 SyntaxError: Parse error이 표시됩니다. 나는이 아포스트로피 탈출 제거Phantom JS + Angular JS - 구문 분석 오류

{{ condition && "String with an escaped \' apostrophe" || "Another string without any escaped characters."}} 

, 그것은 잘 작동 : 언급 된 HTML 파일에서이 라인에서

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) 

, 나는 조건부 각 문이있다. Angular 1.0.8, Karma 1.4.14 및 PhantomJS 1.9.7을 사용하고 있습니다. 패키지를 업데이트하지 않고도 해결 방법이 있는지 알고 싶습니다. 그리고 저는이 아포스트로피를 지키고 싶습니다. 고맙습니다. 크롬에

편집

는이 오류를 받고 있어요 :

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

다른 웹킷 기반 브라우저에서 테스트 해 보셨습니까? – coma

+0

@coma 예, 했어요. 크롬에 대한 질문으로 업데이트하겠습니다. – Umayr

+2

아포스트로피 (작은 따옴표)를 여기서 이스케이프 처리해야하는 이유는 무엇입니까? 작은 따옴표는 큰 따옴표 안에 있습니다. 백 슬래시를 제거하면 아무 것도 변경되지 않습니까? (나는 마지막 질문을 물어 보았습니다. "\\'"또는 "\"가 작동하면 제거 할 것인지 확실하지 않습니다.) 또한, 자신에게 호의를 베풀고 어떤 패키지도 업데이트하지 말라는 요구를 극복 할 수도 있습니다. Angular JS 1.0.8은 너무 오래되었습니다 ... 현재 버전을 사용하기 위해서는 한 번 골치가있을만한 가치가 있습니다. –

답변

2

자바 스크립트에서 당신은 이중 인용 된 문자열에 작은 따옴표를 이스케이프 할 필요가 없습니다. "'" 아포스트로피가있는 문자열을 생성합니다. "\'"은 유효하지 않습니다. 왜냐하면 \'은 유효하지 않은 이스케이프 시퀀스이기 때문입니다. 아포스트로피 앞에 백 슬래시가있는 문자열을 생성하려면 "\\'"을 수행하고 백 슬래시를 이스케이프해야합니다.

+0

좋아. 그것은 실제로 제가 처음에 한 일 이었지만, IDE (Webstrom 8.0.4) http://i.imgur.com/dxwrm0U.png에서 이와 비슷한 것을 얻었습니다. IDE에서 실제 오류나 버그 일 경우 혼란 스러웠습니다. 나를 정리 해줘서 고마워. – Umayr