मुझे नियमित अभिव्यक्ति की आवश्यकता है जो न्यूज़ीलैंड स्थानीय, मोबाइल और फ्रीकॉल (0800) फोन नंबरों को सत्यापित करने के लिए PHP और जावास्क्रिप्ट में काम करता है।न्यूजीलैंड फोन नंबरों को सत्यापित करने के लिए नियमित अभिव्यक्ति
Matches: (09)1234567, (021)123456, (021)1234567, (027)123456, 0800 12345, 0800 1234578
Non-Matches: (09)123456 , (021)12345 , (031)1234567, (027)12345 , 0800-1234, 080
नीचे एक नियमित अभिव्यक्ति मैं वेब पर पाया जाता है, लेकिन यह किसी कारण के लिए काम करने के लिए प्रतीत नहीं होता:
(^ ([0] \ घ {1})) (\ घ {7 } $) | (^ ([0] [2] \ घ {1})) (\ घ {6,8} $) | ([0] [8] [0] [0]) ([\ s]) (\ d {5,8} $)
क्या कोई उपरोक्त अभिव्यक्ति में सहायता कर सकता है? आपकी सहायता के लिए अग्रिम रूप से धन्यवाद।
अद्यतन - मैं इसे बाहर काम किया और समाधान के नीचे है:
$phone_number = preg_replace('/[^\d\(\)]/', '', $phone_number);
$pattern = '/^(\((03|04|06|07|09)\)\d{7})|(\((021|022|025|027|028|029)\)\d{6,8})|((0508|0800|0900)\d{5,8})$/';
यह अच्छा लग रहा है और मैंने इसे PHP में आजमाया लेकिन यह किसी कारण से काम नहीं करता था। कोई भी मदद कर सकता है? – Chris
@ क्रिस: मैं बस इतना कह सकता हूं कि अभिव्यक्ति स्वयं ही काम करती है (http://rubular.com/r/ynr28Fcwui)। आपको PHP दस्तावेज़ों में देखना चाहिए। – Tomalak