많은 사람들이 이미 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 개의 스패너를 슬라이스 한 다음 다른 하나의 일치하는 패런을 찾는 것이 항상 작동합니다. (입력 []
에서도 작동합니다 .)