मैं उपयोगकर्ता को पाठ इनपुट में सरल गणना करने की अनुमति देना चाहता हूं, ताकि 2 * 5 टाइप करने के परिणामस्वरूप 10 हो। मैं सबकुछ बदल रहा हूं लेकिन अंकों को खाली स्ट्रिंग के साथ बदल रहा हूं और फिर eval() का उपयोग करके गणना कर सकता हूं। यह मैन्युअल रूप से पार्सिंग करना आसान और संभवतः तेज़ लगता है।इनपुट में सरल गणना के लिए जावास्क्रिप्ट eval() सुरक्षित का उपयोग कर रहा है?
अक्सर यह कहा जा रहा है कि eval() असुरक्षित है, इसलिए मैं सुनना चाहता हूं कि इस स्थिति में इसका उपयोग करने का कोई खतरा या कमी है।
function (input) {
value = input.value.replace(/[^-\d/*+.]/g, '');
input.value=eval(value);
}
'var value' * sigh * – katspaugh
और फिर आप लोग पूछेंगे कि क्यों' 2 + 2e-3' परिणाम '2.002' के बजाय' 1'। अमान्य इनपुट के बारे में लोगों को चेतावनी दें, चुपचाप इसे फेंक न दें। और मूल्यांकन को आज़माएं/पकड़ें, ताकि उपयोगकर्ता विफल होने पर उपयोगकर्ता को बता सकें। – DCoder