कन्वर्ट JSF ** k को सामान्य JS


12

आप में से कई लोग पहले से ही JSF ** k जानते हैं । जो नहीं करते हैं, उनके लिए यह एक स्क्रिप्ट है जो मूल रूप से किसी भी जावास्क्रिप्ट कोड को केवल लिखी गई किसी चीज़ में बदल देती है []()!+

आपका काम अपनी पसंद की किसी भी भाषा का उपयोग करके निर्माण करना है, एक प्रोग्राम जो जेएसएफ ** के को अनअफुस्केटेड जावास्क्रिप्ट में परिवर्तित करता है।

  • इनपुट : मान्य JSF ** k कोड के साथ एक स्ट्रिंग।
  • आउटपुट : नियमित जावास्क्रिप्ट कोड के साथ एक स्ट्रिंग जो इनपुट उत्पन्न करने के लिए पहले JSF ** ked किया गया है।

इस चुनौती के लिए, विचार करें कि इनपुट स्ट्रिंग केवल JSF ** ked है।

यह एक प्रतियोगिता है, इसलिए बाइट्स में सबसे छोटा कोड, जीत है।


@ मिचेल, लेकिन एन्कोडिंग अस्पष्ट रूप से उल्टा है? मुझे ऐसा नहीं लगता ... मैं कैसे तय करूं कि कुछ [...]ऐरे एक्सेस मूल कोड का हिस्सा था या ऑबफ्यूजन का हिस्सा था? वास्तव में अन्य सभी निर्माणों के लिए भी।
मार्टिन एंडर

2
@JDDvorak ओह क्या ... इतना प्रति-उत्पादक ... हम उसे इस प्रश्न को बंद करने और नीचा दिखाने के बजाय उभारने में मदद कर सकते थे ।
मार्टिन एंडर

2
@ m.buettner मैंने नीचा दिखाया क्योंकि मुझे नहीं लगता कि सवाल कहीं भी हो रहा है। मैं निश्चित रूप से किसी के लिए कुछ विशेषाधिकारों को अनलॉक करने के लिए पोस्ट को अपवोट नहीं करना चाहता।
जॉन ड्वोरक

2
@JDDvorak मुझे लगता है कि हमें नए उपयोगकर्ताओं को हतोत्साहित नहीं करना चाहिए जो अच्छी चुनौतियां लिखना चाहते हैं और आलोचना सुनना चाहते हैं। के बाद से सैंडबॉक्स है मेटा पर और वहीं पर बनी रहेंगी, downvoting प्रतिकूल है। समापन पूरी तरह से पर्याप्त है। मुझे नहीं लगता कि एक भी अपवॉट किसी को नुकसान नहीं पहुंचाएगा, और यह उपयोगकर्ता को वास्तव में इस समुदाय में प्रवेश पाने का मौका देगा। लेकिन किसी ने आपके साथ सहमति व्यक्त की और साथ ही नीचे जाने का फैसला किया, क्योंकि बिल्ली, नए उपयोगकर्ताओं को सैंडबॉक्स में पोस्ट करने की अनुमति क्यों दी जानी चाहिए (मुझे लगता है) ... और अब वह अभी भी वहां पोस्ट नहीं कर सकता है। मुझे नहीं लगता है कि हम इस समुदाय को कैसे विकसित करते हैं।
मार्टिन एंडर

1
क्या आप कृपया कुछ स्पष्टीकरण जोड़ सकते हैं कि सामान्य जावास्क्रिप्ट का क्या मतलब है? यह स्पष्ट नहीं हो सकता है कि बैक-ट्रांसफॉर्मेशन कैसे किया जाना है। उदाहरण के लिए, यदि मैं किसी अच्छे इनपुट पर दो बार ऑब्स्टसुलेटर का उपयोग करता हूं, तो सुझाया गया आउटपुट क्या है? मूल कार्यक्रम या इनपुट जो पहले से ही बाधित था?
हावर्ड

जवाबों:


12

जावास्क्रिप्ट - 68 55 51

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

वैकल्पिक रूप से: (एक ही लंबाई)

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

आपके ब्राउज़र के कंसोल में चलता है। केवल 'Eval Source' विकल्प के साथ टिक किए गए jsfuck.com द्वारा उत्पन्न कोड के साथ काम करने की गारंटी है।

Ungolfed:

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
)

सुझाए गए संपादन में, जिसे मैंने अस्वीकार कर दिया, @ user3082537 ने स्लाइस के बजाय रेगेक्स का उपयोग करने का सुझाव दिया, जैसे किreplace(/^.*\n|\n}$/g,'')
user12205

7

जावास्क्रिप्ट, 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))

बहुत साधारण; यह केवल तब तक वापस चला जाता है जब तक कि कोष्ठक ( (और )) संतुलित नहीं हो जाते। जेएसएफ आउटपुट के अंतिम तीन अक्षर हमेशा से होते हैं)() , इसलिए पिछले 2 पार्न्स को बंद कर दिया जाता है और फिर दूसरे के लिए मैचिंग पार्न ढूंढना हमेशा काम करेगा। (यह इनपुट के साथ []भी काम करता है।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.