2011-01-09 13 views
14

मैं इसमें (यूएस) फोन नंबर को सत्यापित करने की कोशिश कर रहा हूं जिसमें इसमें कोई अतिरिक्त वर्ण नहीं है। तो प्रारूप 1-555-555-5555 है जिसमें कोई डैश, रिक्त स्थान इत्यादि नहीं है और 1 वैकल्पिक है। हालांकि, मेरी नियमित अभिव्यक्ति केवल अग्रणी 1 के साथ संख्याओं को छोड़कर और कहती है कि इसके बिना संख्याएं अमान्य हैं। यहां मैं क्या उपयोग कर रहा हूं, मैं गलत कहां गया?नियमित अभिव्यक्ति में वर्ण वैकल्पिक बनाते हैं

"^(1)\\d{10}$" 
+0

कोई डैश या रिक्त स्थान के साथ? क्या आप जानते हैं कि आप उपयोगकर्ता के लिए इसे और अधिक कठिन बना रहे हैं यदि आप ऐसा करते हैं (अध्ययन दिखाते हैं कि अलग-अलग लोगों के साथ छोटे तारों की तुलना में लोगों को अंकों के लंबे तारों के साथ अधिक कठिनाई होती है)? डैश और रिक्त स्थान की अनुमति दें, और उन्हें इनपुट पर आसानी से बाहर निकालें। उपयोगकर्ता को ऐसा करने के लिए न करें जो आपका सॉफ़्टवेयर पूरी तरह से करने में सक्षम है। आपके उपयोगकर्ता आपको धन्यवाद देंगे। –

+0

डिज़ाइन मेरे ऊपर नहीं है, लेकिन मैं सहमत हूं :) – schwiz

उत्तर

26

उपयोग:

"^1?\\d{10}$" 

? का मतलब है "वैकल्पिक"।

+1

आह कुछ कारणों से ठीक है, मैंने सोचा था कि कोष्ठक का मतलब वैकल्पिक था। धन्यवाद! – schwiz

14

आप लिए कुछ नहीं किया है 1 वैकल्पिक हैं। आपने इसे एक समूह में रखा है, लेकिन यह सब कुछ है। आप इस हैं:

"^1?\\d{10}$" 

वह मूल रूप से (इस क्रम में) मैच के लिए कहते हैं:

  • स्ट्रिंग
  • वैकल्पिक रूप से चरित्र की शुरुआत '1'
  • वास्तव में दस अंक
  • स्ट्रिंग का अंत

012 पर देखें अधिक जानकारी के लिए। उदाहरण के लिए, ? इस तरह के "लालची क्वांटिफायर" खंड में सूचीबद्ध है:

एक्स?               एक्स, एक बार या बिल्कुल नहीं

+2

डैनियल को देने के आपके उत्तर के लिए धन्यवाद, आपके पास बहुत सारे प्रतिनिधि और बैज हैं ;-) – schwiz

+1

लॉल, धन्यवाद! :) – Daniel

+0

आपके पास बहुत सारे प्रतिनिधि हैं और बैज: डी – Michelle

2

इसका उपयोग करें "/^((\+?1-[2-9]\d{2}-[2-9]\d{2}-\d{4})|(\([2-9]\d{2}\)(\s)?[2-9]\d{2}-\d{4}))$/" यह केवल यूएस-स्वीकृत संख्याओं को अनुमति देगा जिसमें "1-xxx-xxx-xxxx", "+ 1-xxx-xxx-xxxx", (xxx) xxx-xxxx शामिल है। मुझे आशा है कि यह वही है जो आप खोज रहे हैं।

+0

इस प्रश्न के साथ कुछ लेना देना नहीं है। – Toto

+0

मुझे लगता है कि यह अभिव्यक्ति यू.एस. में किसी भी संख्या को मान्य करने के लिए पर्याप्त है, है ना? –

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