2013-02-20 11 views
13

मुझे यह जांचने की आवश्यकता है कि कोई शब्द किसी भिन्न सबस्ट्रिंग के साथ केस अंतरों को अनदेखा कर रहा है या नहीं। मैं निम्नलिखित रेगेक्स खोज पैटर्न का उपयोग करके यह चेक कर रहा हूं लेकिन स्ट्रिंग के मामले में अंतर होने पर इससे मदद नहीं मिलती है।यह जांचने के लिए कि क्या स्ट्रिंग शुरू होती है, केस अंतरों को अनदेखा कर रहा है

मेरे मामले संवेदनशील तरीका:

var searchPattern = new RegExp('^' + query); 
if (searchPattern.test(stringToCheck)) {} 

उत्तर

34

दूसरा तर्क के रूप में i संशोधक दर्रा:

new RegExp('^' + query, 'i'); 

अधिक जानकारी के लिए the documentation पर एक नज़र डालें।

+1

त्वरित उत्तर के लिए धन्यवाद! एसओ परमिट के रूप में जल्द ही स्वीकार करेंगे! –

2

इस page में आप देख सकते हैं कि संशोधक दूसरे पैरामीटर के रूप में जोड़े जा सकते हैं। आपके मामले में आप 'मैं' (Canse असंवेदनशील)

//Syntax 
var patt=new RegExp(pattern,modifiers); 

//or more simply: 

var patt=/pattern/modifiers; 
+1

w3schools.com की सिफारिश न करें। Http://w3fools.com क्यों देखें। –

+0

@ मार्सेलकोर्पेल किया .. मैंने बस Google में देखा अन्य के साथ स्विच किया। धन्यवाद! – SERPRO

13

के लिए देख रहे हैं, तो आपको बिल्कुल एक रेगुलर एक्सप्रेशन की जरूरत नहीं है, बस तार तुलना:

if (stringToCheck.substr(0, query.length).toUpperCase() == query.toUpperCase()) 

डेमो: http://jsfiddle.net/Guffa/AMD7V/

यह उन मामलों को भी संभालता है जहां आपको RegExp समाधान कार्य करने के लिए वर्णों से बचने की आवश्यकता होगी, उदाहरण के लिए यदि query="4*5?" जो हमेशा अन्यथा मेल खाता है।

+0

यह विधि regex खोज से अधिक प्रदर्शनकारी है? –

+3

@ user01: हाँ, मैंने इसे तीन ब्राउज़रों में परीक्षण किया है, और यह उन सभी में तेज़ है: http://jsperf.com/regex-vs-compare – Guffa

+1

+1 और धन्यवाद। मैं इस समाधान के साथ जा रहा था लेकिन जैसा कि सवाल रेगेक्स के बारे में पूछा गया था, मुझे जवाब एसीसी स्वीकार करना चाहिए। –

2

मुझे लगता है कि सभी पिछले उत्तर सही हैं, यहां एक और उदाहरण है SERPRO के समान है लेकिन अंतर यह है कि कोई नया कन्स्ट्रक्टर नहीं है: नोटिस: मैं मामले को अनदेखा करता हूं और^इसका मतलब है।

var whatEverString = "My test String"; 
var pattern = /^my/i 
var result = pattern.test(whatEverString); 
if (result === true) { 
    console.log(pattern, "pattern did match !"); 
} else { 
    console.log(pattern, " pattern did NOT match"); 

} 

यहाँ jsfiddle है अगर आप इसे आजमाइए करना चाहते हैं।

enter image description here