2012-07-29 11 views
5

मैं उपयोगकर्ता इनपुट से स्ट्रिंग को कैसे पार्स कर सकता हूं और इसे जावास्क्रिप्ट सशर्त कथन में पुनर्निर्माण कैसे कर सकता हूं।जावास्क्रिप्ट सशर्त स्टेटमेंट के लिए पार्स उपयोगकर्ता इनपुट

उदाहरण के लिए, उपयोगकर्ता एक texbox में follwing स्ट्रिंग आदानों अगर

x==1 && y==2 || (z!=3) 

कैसे मैं निम्नलिखित सर्वर साइड जावास्क्रिप्ट

if (vars['x'] == 1 && vars['y'] == 2 || (vars['z'] != 3)) 

मेरा ऐप नोड पर बनाया गया है निष्पादित करने के लिए इस स्ट्रिंग को पुन: कर सकते हैं .js अगर वह जानकारी बिल्कुल मदद करती है। मैं eval() फ़ंक्शन से अवगत हूं, लेकिन मूल्यांकन से पहले मुझे पहले उपयोगकर्ता अभिव्यक्ति से चर को पकड़ना होगा।

यह नियमित अभिव्यक्तियों के लिए बहुत जटिल लगता है। अगर कोई साधारण पार्सर के बारे में जानता है जो ऐसा कुछ पूरा करेगा जो बहुत अच्छा होगा।

+0

'y = 2' क्यों है? सुरक्षा के बारे में भी सोचें। –

+0

सुरक्षा एक हत्यारा होगी, भले ही '' 'से बचने और सैंडबॉक्सिंग पर्याप्त हो। –

उत्तर

4

Esprima बहुत अच्छा है: http://esprima.org/

आप नोड में या एक ब्राउज़र में चला सकते हैं।

+0

यह बहुत अच्छा लग रहा है। साझा करने के लिए धन्यवाद। –

+0

साझा करने के लिए धन्यवाद – v1r00z

संबंधित मुद्दे