2011-07-06 31 views
400

में एक regex मैं एक स्ट्रिंग regex से मेल खाता है कि क्या जांच करने के लिए जावास्क्रिप्ट का उपयोग करने के (jQuery के साथ हो सकता है) कुछ क्लाइंट की ओर सत्यापन करना चाहता हूँ से मेल खाता है या नहीं:चेक एक स्ट्रिंग जे एस

^([a-z0-9]{5,})$ 

आदर्श रूप में यह होगा एक अभिव्यक्ति जो सच या गलत लौटी।

मैं एक जावास्क्रिप्ट नौसिखिया हूं, क्या match() मुझे क्या चाहिए? ऐसा लगता है कि स्ट्रिंग का हिस्सा रेगेक्स से मेल खाता है, न कि पूरी चीज।

+0

आप एक पूरा मैच चाहते हैं, या सिर्फ एक मिलान स्ट्रिंग _contains_ स्ट्रिंग या नहीं? –

+0

एक पूरा मिलान - एक मिलान करने वाला सबस्ट्रिंग नहीं। – Richard

उत्तर

679

उपयोग regex.test() अगर सभी आप चाहते हैं एक बूलियन परिणाम है:

/^([a-z0-9]{5,})$/.test('abc1'); // false 

/^([a-z0-9]{5,})$/.test('abc12'); // true 

/^([a-z0-9]{5,})$/.test('abc123'); // true 

... और आप अपने regexp से () को दूर कर सकता है, क्योंकि आप एक पर कब्जा के लिए कोई जरूरत नहीं है।

+1

रेगेक्स में प्रारंभिक^क्या करता है? – PedroD

+2

@PedroD^ – Nagaraju

+0

के साथ शुरुआत या शुरू होता है तो आप विपरीत कैसे करेंगे? "के साथ शुरू नहीं होता है ..." – PedroD

28

/youregexp/.test(yourString) का उपयोग करें यदि आप केवल यह जानना चाहते हैं कि आपकी स्ट्रिंग regexp से मेल खाती है या नहीं।

6

यहाँ एक उदाहरण है कि कुछ HTML टैग के लिए लग रहा है, इसलिए यह स्पष्ट है कि /someregex/.test() एक बूलियन रिटर्न:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true'); 
43

आप match() रूप में अच्छी तरह का उपयोग कर सकते हैं:

if (str.match(/^([a-z0-9]{5,})$/)) { 
    alert("match!"); 
} 

लेकिन test() तेजी के रूप में हो रहा है आप here पढ़ सकते हैं।

match() और test() के बीच महत्वपूर्ण अंतर:

match() केवल तार के साथ काम करता है, लेकिन पूर्णांकों के साथ भी test() काम करता है।

12345.match(/^([a-z0-9]{5,})$/); // ERROR 
/^([a-z0-9]{5,})$/.test(12345); // true 
/^([a-z0-9]{5,})$/.test(null); // false 

// Better watch out for undefined values 
/^([a-z0-9]{5,})$/.test(undefined); // true 
87

उपयोग test() विधि:

var string = "sample1"; 
var re = new RegExp("^([a-z0-9]{5,})$"); 
if (re.test(string)) { 
    console.log("Valid"); 
} else { 
    console.log("Invalid"); 
} 
+0

कन्स्ट्रक्टर के तर्क में डबल कोट को बंद करना। –

+0

जोड़ा गया डबल कोट, धन्यवाद @RadkoDinev –

+2

ध्यान दें कि 'RegExp' वाला संस्करण रेगेक्स स्ट्रिंग में वेरिएबल मानों को इंजेक्ट करने की अनुमति देता है। –

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