2013-02-06 1 views
0

나는 Ace editor를 자동으로 설정하기 위해 주어진 문자열이 JavaScript 스크립트인지를 탐지 할 수 있는지 알아 내려고하고있다.문자열에 자바 스크립트가 포함되어 있는지 감지 할 수 있습니까?

var x = function(){ 
    alert('hello world'); 
    } 

이 ... 이것은 JS으로 안전하게 '확인'할 수 있습니다

'교전 규칙은'나는 다음과 같은 가질 수 있도록 할 것입니다? 불행히도이 파일은 DB에 저장되므로 파일 형식 확장에 의존 할 수 없습니다. 최악의 경우 JS 콘텐츠로 표시해야 할 수도 있지만 지금은이를 피하려고합니다.

+4

정규식으로이 문제를 해결할 것이라고 생각하지 않습니다. – Matthew

+0

DB에 스크립트 언어를 저장하지 않으려하는 이유는 무엇입니까? 이것은 최고의 솔루션 인 것 같습니다. – Bergi

+0

DB에 저장하는 것을 피하려고하지 않습니다. DB에서 JS로 표시하지 않으려 고합니다. 가치가 올지 여부를 감지 할 수있는 가능성을 탐색 중입니다. – vector

답변

3

무거운 무게의 솔루션이지만 완전히 Javascript 파서를 실행할 수는 있습니다. Uglify, Narcissus, Esprima, Acorn 및 ZeParser와 같이 Javascript로 작성된 여러 가지가 있습니다.

아마도 여러분의 문자열에 합법적 인 자바 스크립트가 포함되어 있는지 알려주고 그럴 경우 전체 구문 트리를 제공 할 것입니다.

더 이상 가벼운 기술에 대해서는 확신하지 못합니다.

+0

Esprima는 지금 당장은 잘 할 것입니다 !!! 감사! – vector

+0

javascript - jslint로 작성된 원본 javascript 파서를 잊지 마십시오. linting은 기본 코드의 응용 프로그램에 불과합니다. jslint에 숨겨진 것은 매우 빠르고 매우 작은 js 파서입니다. – slebetman

관련 문제