आपके पास दो अधिभोग हैं:
नियमित अभिव्यक्ति :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
नियमित अभिव्यक्तियाँ तेज़ लगती हैं (कम से कम क्रोम 10 में)।
प्रदर्शन परीक्षण - छोटी बाधा
प्रदर्शन परीक्षण - लंबी बाधा
अपडेट 2011:
यह निश्चित रूप से नहीं कहा जा सकता है कि कौन सी विधि तेज है। ब्राउज़रों के बीच अंतर बहुत बड़ा है। जबकि क्रोम 10 indexOf
में, सफ़ारी 5 में, तेजी से प्रतीत होता है, indexOf
स्पष्ट रूप से किसी भी अन्य विधि की तुलना में धीमा है।
आपको अपने स्वयं के लिए देखना होगा और प्रयास करना होगा। यह आपकी आवश्यकताओं पर निर्भर करता है। उदाहरण के लिए केस-असंवेदनशील खोज नियमित अभिव्यक्ति के साथ तेजी से होती है।
अपडेट 2018:
बस लोगों को स्वयं परीक्षण चलाने से बचाने के लिए, यहां सबसे आम ब्राउज़रों के लिए वर्तमान परिणाम हैं, प्रतिशत अगले सबसे तेज परिणाम (जो ब्राउज़रों के बीच भिन्न होता है) पर प्रदर्शन में वृद्धि दर्शाता है:
Chrome: indexOf (~ 98% तेज़) <-- wow
फ़ायरफ़ॉक्स: कैशेड RegExp (~ 18% तेज़ी)
IE11: कैशेड RegExp (~ 10% तेज़ी)
एज: indexOf (~ 18% तेज़ी)
सफारी: कैशेड RegExp (~ 0.4% तेज़)
ध्यान दें कि कैश किया गया RegExp है: var r = new RegExp('simple'); var c = r.test(str);
के विपरीत:/simple/.test(str)
regex
टैग के उपयोग से थोड़ा भ्रमित हूं )?