JSF ** k를 일반 JS로 변환 기본적으로 JavaScript 코드를을 사용하여 작성된 것으로

많은 사람들이 이미 JSF ** k를 알고 있습니다. 그렇지 않은 사람들에게는 기본적으로 JavaScript 코드를을 사용하여 작성된 것으로 바꾸는 스크립트 []()!+입니다.

당신의 임무는 선택한 언어를 사용하여 JSF ** k를 난독 화되지 않은 JavaScript로 변환하는 프로그램을 작성하는 것입니다.

  • 입력 : 유효한 JSF ** k 코드를 가진 문자열.
  • Output : 입력을 생성하기 위해 이전에 JSF ** k되어있는 일반 JavaScript 코드가 포함 된 문자열입니다.

이 문제를 해결하려면 입력 문자열이 JSF **로 한 번만 입력 된 것으로 간주하십시오.

이것은 경연 대회이므로 가장 짧은 코드 (바이트)가 이깁니다.



답변

자바 스크립트 -68 55 51

alert(/\n(.+)/.exec(eval(prompt().slice(0,-2)))[1])

대안 : (같은 길이)

alert(/.+(?=\n})/.exec(eval(prompt().slice(0,-2))))

브라우저 콘솔에서 실행됩니다. ‘Eval Source’옵션이 선택된 jsfuck.com에 의해 생성 된 코드로만 작동하도록 보장됩니다.

언 골프 드 :

alert(
    /\n(.+)/.exec(                 // regex to extract code from inside outer function braces {}
        eval(prompt().slice(0,-2)) // remove the final set of parens () and evaluate the code
                                   // this results in a function, which will be converted to a string as 'exec' expects a string
    )[1]                           // get the first capture group
)

답변

JavaScript, 122는 모든 입력에서 작동

s=prompt().slice(0,-2)
i=s.length
while(i--){if((l=s.slice(i)).split(')').length==l.split('(').length)break}alert(eval(l))

꽤 간단합니다. 괄호 ( ())가 균형을 이룰 때까지 문자열로 돌아갑니다 . JSF 출력의 마지막 세 문자는 항상 )() 이므로 마지막 2 개의 스패너를 슬라이스 한 다음 다른 하나의 일치하는 패런을 찾는 것이 항상 작동합니다. (입력 []에서도 작동합니다 .)