2014-05-12 4 views
0
나는 그 (안 내) 수정해야

코드 후 즉시 시작합니다자바 스크립트 : 구문 에러 : 식별자는 숫자 리터

var addr = escape('<a href="')%3B%2509%2509addr&#32;+=&#32;escape(utf8_encode('mailto%253A'))%3B%2509%2509addr&#32;+=&#32;encodedEmail%3B%2509%2509addr&#32;+=&#32;escape('.html">'); 

자바 스크립트의 이전 버전에서 일 것 같다,하지만 지금 파산이야 ... encodedEmail % 3B는 세미콜론, % 2509는 % 09 = [tabulator]

% 3B에서 SyntaxError : 식별자가 숫자 리터럴 바로 다음에 시작한다는 오류가 발생했습니다.

무엇이 잘못 되었나요?

나는 그 코드에서 무료 서비스를 제공하겠다는 약속을 한 후에 - 다시 스팸과 싸우는 부대입니다. 미리 감사드립니다. 따뜻하게, Gregor

+0

문자열을 끝내는'''를 보시오. 그것과 관련이있을 것이라고 생각하십니까? –

+0

'''를 이스케이프 처리하지 않았으므로 문자열 리터럴이 일찍 종료되어 문제가 발생합니다. –

+0

가능한 [SyntaxError : 식별자가 Firebug의 숫자 리터럴 바로 뒤에 시작됩니다] (http://stackoverflow.com/questions/14966133/) syntaxerror-identifier-starts-after-numeric-literal-in-firebug) – Amir

답변

0

JavaScript의 모든 버전에서 작동하지 않는다고 생각됩니다.

var addr = escape('<a href="')%3B%2509%2509addr&#32;+=&#32;escape(utf8_encode('mailto%253A'))%3B%2509%2509addr&#32;+=&#32;encodedEmail%3B%2509%2509addr&#32;+=&#32;escape('.html">'); 
// String ends here ----------^ 

가 ... 다음 )escape의 괄호를 닫습니다 : 당신은 문자열의 끝이있다. 다음에 나오는 %은 나머지 연산자로 해석되며 3B은 구문 오류입니다.

해결 방법은 원하는 문자열을 문자열에 넣는 것입니다. 나는 그 순간이 무엇인지 추측 할 수 없다.