2012-10-07 8 views
7

संभव डुप्लिकेट के लिए जावास्क्रिप्ट regex:
Canada postal code validationकैनेडियन डाक कोड

मैं कनाडा पोस्टल/ज़िप कोड सत्यापित करने के लिए जावास्क्रिप्ट regex की जरूरत है। कनाडा का पोस्टल कोड प्रारूप 'A1A 1X1' or 'a1a1x1' है। हालांकि इसमें पत्र डी, एफ, आई, ओ, क्यू, या यू शामिल नहीं हैं। मुझे यहां कुछ मिले लेकिन वे सी # में थे।

+1

var tmp = new RegExp (/^(?!। * [DFIOQU]) [ए-वीएक्सवाई] [0-9] [एजेड] +? [0-9] [एजेड] [0-9] $/i) रेफरी: http://my.safaribooksonline.com/9780596802837/id2991897 जोड़ा गया: बीच में कई रिक्त स्थान वैकल्पिक हैं, केस-असंवेदनशील – Dathan

+0

यह ध्यान देने योग्य है कि एक अच्छे प्रश्न को आपके हिस्से पर कुछ प्रयास दिखाना चाहिए। ;-) – Tass

+1

@ टास नीचे दिए गए मेरे उत्तर को देखें – DarknessBeginsHere

उत्तर

12
function checkPostal(postal) { 
    var regex = new RegExp(/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]()?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i); 
    if (regex.test(postal.value)) 
     return true; 
    else return false; 
} 
+0

स्पेस को बाएं/दाएं (या बीच में भी) में पट्टी करना चाहते हैं। –

+0

बीच में अंतरिक्ष संकाय है इसलिए यह नौकरी अच्छी तरह से करता है। बस वापसी मानों को सही (पहले) और झूठी (अंतिम) में समायोजित करें। फिर, ध्यान रखें कि यह फ़ंक्शन वेरिएबल 'डाक' मान पर regex का परीक्षण करता है। मैंने निम्नानुसार तीसरी पंक्ति का पुन: प्रयास किया: यदि (regex.test (डाक)) ... फ़ंक्शन को सीधे मूल्य प्रदान करना। –

+1

ध्यान रखें कि कुछ वर्णों का कोई उपयोग समय में बदल सकता है क्योंकि नए डाक कोड की आवश्यकता होगी। –

-3

असाधारण शब्दों में कुछ भी सामान्य नहीं है, वैध शब्दों को एक-एक करके लिखा जाना चाहिए।

[ABCEGHJKLMNPRSTVWXYZ] 

अंक के

\d 

द्वारा पीछा किया और इस तीन बार

{3} 

अंत में हम "i" केस-संवेदी के लिए जोड़ने

var regex = /([ABCEGHJKLMNPRSTVWXYZ]\d){3}/i; 
+0

पहला अंक ज़ेड नहीं हो सकता है, उदाहरण के लिए। – Qualcuno

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