इनपुट सत्यापन के रूप में मुझे एक बूलियन मान का मूल्यांकन करने के लिए '9>6'
जैसे स्ट्रिंग को सह-संयोजित करने की आवश्यकता है।वैकल्पिक ईविल इवल - रिलेशनल ऑपरेटर
स्ट्रिंग का मूल्यांकन करने के अलावा मुझे कोई कामकाज नहीं मिल रहा है।
मैंने हमेशा eval की बुराई के बारे में सुना है (विशेष रूप से जब से मैं एक फॉर्म इनपुट मान्य कर रहा हूं), इस तथ्य के बारे में कि यह किसी भी स्क्रिप्ट और प्रदर्शन के मुद्दों का मूल्यांकन कर सकता है।
लेकिन ....
वहाँ my case (संबंधपरक ऑपरेटर के साथ काम कर) में किसी भी विकल्प हैं?
var arr = ['<9', '>2'];
var check = function (a) {
return arr.every(function (x) {
var string = '';
string += a + x;
try {
return eval(string);
} catch (e) {
return false;
}
});
};
console.log(check('3'))
आप एक दुभाषिया पैटर्न का मूल्यांकन कर सकते हैं http://www.dofactory.com/javascript/interpreter-design-pattern – InferOn
या वेबवर्कर का उपयोग करने और वहां eval का उपयोग करने के बारे में, और अपने शेष एप्लिकेशन के संदर्भ से इसका मूल्यांकन कैसे करें – atmd
@atmd यह समस्या स्थानीय स्क्रिप्ट पर आई जिसने फ़ॉर्म इनपुट के माध्यम से मूल्य प्राप्त किए, यह वास्तव में काफी अच्छी तरह से काम करता है (कोई उल्लेखनीय प्रदर्शन समस्या नहीं)। मुझे एक और सरल समाधान नहीं मिल सका और मेरे पास वास्तव में एक विकल्प खोजने का कोई व्यावहारिक कारण नहीं है, लेकिन चूंकि eval की इतनी बुरी प्रतिष्ठा है। । । – maioman