जावास्क्रिप्ट (सभी परीक्षण मामलों के साथ काम करने के लिए अद्यतन)
अल्पज्ञात सत्य यह है कि वास्तव में चार 6एस हैं, लेकिन उनमें से एक ने दूसरों के साथ विश्वासघात किया और उन्हें संख्या के विश्व अंकों से मिटाने के लिए कोड रूप में प्रस्तुत किया । यहाँ है कि गद्दार छह:
x=prompt(''+
'Enter number');
alert( ( (~x[
'ind'+
'exOf']('666')))?(x
.replace(/666(.*)$/,
function (mat,g){
return '667'+g
['re'+ 'place'
](/./g,0)})):((+x+
1+'').replace(
666,667)));
यहाँ एक स्पष्टीकरण है। सबसे पहले, कोड को सुशोभित करें और बेकार सामान को निकालें ''+'string'और जैसे ((code)):
x = prompt('Enter number');
alert(
~x['indexOf']('666')
?
x.replace(/666(.*)$/, function(mat,g) {
return '667' + g['replace'](/./g,0)
})
:
(+x+1+'').replace(666, 667)
);
अजीब नोटेशन (जैसे ~indexOfऔर ['replace']) को और अधिक सामान्य लोगों में बदलें :
x = prompt('Enter number');
alert(
x.indexOf('666') > -1
?
x.replace(/666(.*)$/, function(mat, g) {
return '667' + g.replace(/./g, 0)
})
:
((parseInt(x) + 1) + '').replace(666, 667)
);
और अब बस समझते हैं कि एल्गोरिथ्म इस प्रकार है:
पुराना संस्करण (इसके लिए काम नहीं करता है 666666666) :
s='Enter number';x
=prompt( ''+
s);x=+x+
(-~![]);
x=(''+x).replace('666',
666+([][ +[]]+[])
[+[]]['l ength'[
'repla'+ 'ce'](
/ /g,'')]);alert(x)
इसे समझने के लिए, आइए इसे पहले सुशोभित करें:
s = 'Enter number';
x = prompt('' + s);
x = +x + (-~![]);
x = ('' + x).replace('666',666+([][+[]]+[])[+[]]['l ength'['repla'+'ce'](/ /g,'')]);
alert(x);
अब चलो की तरह बेकार चीजों को निकाल देने के '' + stringऔर 'str' + 'ing', अनावश्यक हटाने sचर, और तरह weirdness बदलने -~![]में 1:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0]['l ength'['replace'](/ /g,'')]);
alert(x);
'l ength'['replace'](/ /g,'')बस है "length":
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0].length);
alert(x);
और "undefined"[0]है "u", और "u".lengthहै 1:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666 + 1);
alert(x);
अब हम कर चुके हैं! अब इसे समझना बहुत आसान होना चाहिए।