यहाँ सभी जवाब पढ़ने के बाद मैं यह निर्धारित किया है कि इस प्रश्न का स्पष्ट उत्तर नहीं है।
मेरी regex के साथ
आप स्ट्रिंग से बाहर सभी रिक्त स्थान पट्टी की आवश्यकता होगी, लेकिन वास्तव में आप सबसे अधिक डेटा सत्यापित करने के लिए वैसे भी यह कर दिया जाना चाहिए। यह आसानी से हासिल किया जा सकता है यहां कुछ उदाहरण हैं।
पीएचपी
preg_replace('/(\s+)|(-)/', '', $str)
जावास्क्रिप्ट
str.replace(/ /g,'')
सत्यापन ब्रिटेन सरकार सलाह (http://www.hmrc.gov.uk/manuals/nimmanual/nim39110.htm) पर आधारित के लिए मैं निम्नलिखित regex का निर्माण किया।
/^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-D]{1}$/i
यहाँ इस regex
/ # Wraps regex
^ # Beginning of string
[A-CEGHJ-PR-TW-Z]{1} # Match first letter, cannot be D, F, I, Q, U or V
[A-CEGHJ-NPR-TW-Z]{1} # Match second letter, cannot be D, F, I, O, Q, U or V
[0-9]{6} # Six digits
[A-D]{1} # Match last letter can only be A, B, C or D
$ # End of string
/i # Ending wrapper and i denotes can be upper or lower case
यहाँ कुछ परीक्षण पैटर्न हैं की एक विवरण आप उपयोग कर सकते है
पास
AA 11 22 33 A
BB 44 55 66 B
ZZ 67 89 00 C
विफल
AA 11 22 33 E
DA 11 22 33 A
FA 11 22 33 A
AO 11 22 33 A
जैसा कि मैंने विस्तार करने के लिए jQuery मैं भी इस शामिल कर रहा हूँ इस नए राष्ट्रीय बीमा संख्या regex जोड़ने के लिए के रूप में यह किसी के लिए उपयोगी हो सकता है मान्य की जरूरत है।
jQuery.validator.addMethod('nino', function(nino, element) {
return this.optional(element) || nino.length >= 9 &&
nino.replace(/ /g,'').match(/^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-D]{1}$/i);
}, 'Please specify a valid national insurance number');
आप एक बुरा उदाहरण यहाँ जो इस सवाल (स्वीकार किए जाते हैं जवाब भी शामिल है) के लिए जवाब में से कुछ का कारण है गलत होने के लिए दे दिया है। आपका उदाहरण एनआई संख्या QQ के साथ शुरू होता है। पत्र संख्या एनआई संख्या में उन पदों में से किसी एक में अमान्य है। कृपया एंड्रयू बाउर का जवाब देखें जो सत्यापन नियमों का विवरण देता है। – Barrie