नियमित अभिव्यक्ति का उपयोग
From LimeSurvey Manual
नियमित अभिव्यक्तियाँ फ़ॉरवर्ड स्लैश ("/") से शुरू और समाप्त होनी चाहिए। आप नियमित अभिव्यक्तियों की एक अच्छी लाइब्रेरी https://www.regexlib.net/ पर पा सकते हैं। ये पैटर्न फ़ॉरवर्ड स्लैश के भीतर रखने पर लगभग हमेशा काम करते हैं।
अपने रेगेक्स का परीक्षण करने के लिए आप इस रेगेक्स टेस्टर का उपयोग कर सकते हैं।
महत्वपूर्ण: शर्तों में नियमित अभिव्यक्तियाँ
ध्यान दें कि शर्त संपादक में नियमित अभिव्यक्तियों का उपयोग करते समय शुरुआती और अंतिम स्लैश शामिल न करें।
ईमेल सत्यापन
अपडेट (12/2018): आजकल डोमेन नामों में केवल “ü” जैसे विशेष वर्ण ही नहीं हो सकते, बल्कि .tech या .company जैसे 3 से अधिक वर्णों वाले डोमेन नाम भी होते हैं, इसलिए नीचे दिया गया ईमेल रेगेक्स केवल यह जाँचता है कि दर्ज किए गए ईमेल पते में “@” और “.” मौजूद हैं या नहीं।
/^.+?@.+?\..+$/
यदि आप बहु-पंक्ति वाले लंबा पाठ फ़ील्ड में प्रति पंक्ति एक पते को सत्यापित करना चाहते हैं:
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/
इस पुराने रेगेक्स में डोमेन नाम 3 वर्णों तक सीमित है, जो सभी उपलब्ध डोमेन को कवर नहीं करता:
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
पोस्टकोड
ऑस्ट्रेलियाई पोस्टकोड:
/^[0-9]{4}/
ब्राज़ीलियाई पोस्टकोड
/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/
कनाडाई पोस्टकोड
/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/
अमेरिकी पोस्टल कोड
/^[0-9]{5}([- /]?[0-9]{4})?$/
पोस्टल कोड को शून्य से शुरू करने के लिए, इसका उपयोग करें:
/^[0-9]{5}(?:-[0-9]{4})?$/
यूके पोस्टकोड
/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i
ध्यान दें कि यह बहुत सटीक नहीं है, और अधिक सटीक सत्यापन कहीं अधिक जटिल है। अधिक जानकारी के लिए उदाहरण के तौर पर StackOverflow उत्तर और Wikipedia देखें।
फ़्रांसीसी पोस्टकोड
/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)|(^98[46-8]\d{2}$)/
ऊपर दिया गया एक्सप्रेशन बहुत सटीक है और यह जाँचेगा कि फ़्रांसीसी डिपार्टमेंट (पहले दो अंक) मौजूद है या नहीं, जिसमें विदेशी डिपार्टमेंट और विदेशी क्षेत्र (DOM-TOM) भी शामिल हैं।
फ़ोन नंबर
अमेरिकी फ़ोन नंबर
/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/
या
/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/
यह दूसरा विकल्प उन सभी कनाडाई और अमेरिकी फ़ोन नंबरों से मेल खाएगा जिनमें अंकों के अलावा अन्य चिह्न शामिल हैं, जैसे:
. ( ) - (space)
इससे आप नीचे दिए गए जैसे फ़ोन नंबरों से मेल कर सकेंगे:
- (555)555 5555
- 555.555.5555
- 555 555 5555
- (555)-555-5555
- 555-555-5555
- 555555555
ऑस्ट्रेलियाई फ़ोन नंबर
निम्नलिखित पैटर्न "+61" देश उपसर्ग सहित सभी प्रकार के ऑस्ट्रेलियाई मोबाइल और लैंडलाइन फ़ोन नंबरों से मेल खाते हैं:
- (02) 9123 6535
- 03 1234-5345
- 0412 345 678
- +61 2 3456 789
लेकिन इनसे नहीं:
- 234 3450 234
- a234 534 3432
- 134567
- 123456789013
कोष्ठक, रिक्त स्थान और हाइफ़न को अनदेखा किया जाता है।
यहाँ सूचीबद्ध 'अत्यधिक सटीक:' संस्करण किसी संख्या के पहले चार या पाँच अंकों का मिलान करते हैं, ताकि यह सुनिश्चित हो सके कि वे मान्य ऑस्ट्रेलियाई नंबर हैं।
'कम सटीक:' संस्करण केवल पहले और दूसरे अंक का मिलान करते हैं, इसलिए अमान्य नंबर भी स्वीकार हो सकते हैं।
सभी ऑस्ट्रेलियाई फ़ोन नंबर (मोबाइल और लैंडलाइन - एरिया कोड आवश्यक)
अत्यधिक सटीक:
/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/
कम सटीक:
/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/
सभी ऑस्ट्रेलियाई फ़ोन नंबर (केवल लैंडलाइन - एरिया कोड आवश्यक)
अत्यधिक सटीक:
/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/
कम सटीक:
/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/
न्यू साउथ वेल्स के लैंडलाइन फ़ोन नंबर (एरिया कोड वैकल्पिक)
अत्यधिक सटीक:
/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/
कम सटीक:
/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/
विक्टोरिया और तस्मानिया के लैंडलाइन फ़ोन नंबर (एरिया कोड वैकल्पिक)
अत्यधिक सटीक:
/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/
कम सटीक:
/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/
क्वींसलैंड के लैंडलाइन फ़ोन नंबर (एरिया कोड वैकल्पिक)
अत्यधिक सटीक:
/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/
कम सटीक:
/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/
साउथ ऑस्ट्रेलिया, नॉर्दर्न टेरिटरी, वेस्टर्न ऑस्ट्रेलिया के लैंडलाइन फ़ोन नंबर (एरिया कोड वैकल्पिक)
अत्यधिक सटीक:
/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/
कम सटीक:
/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/
केवल ऑस्ट्रेलियाई मोबाइल फ़ोन नंबर
अत्यधिक सटीक:
/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/
कम सटीक:
/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/
बेल्जियम का फ़ोन नंबर
/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/
बेल्जियम का मोबाइल फ़ोन नंबर
/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/
फ़्रांस का फ़ोन नंबर
/^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/
फ़्रांस का मोबाइल फ़ोन नंबर
/^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/
लक्ज़मबर्ग का फ़ोन नंबर
/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/
लक्ज़मबर्ग का मोबाइल फ़ोन नंबर
/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/
जर्मन ग्रेड (वैकल्पिक प्लस या माइनस के साथ)
/^[1-6]{1}[\+|\-]?$/
आयु सत्यापन
उदाहरण: आयु 20-99
/([2-9][0-9])/
उदाहरण: आयु 18-35
/(1[8-9]|2[0-9]|3[0-5])/
उदाहरण: आयु 19-65
/^(1[8-9]|[2-5][0-9]|6[0-5])$/
संख्या सत्यापन
1 से 99999 तक की संख्याएँ
/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/
/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster
1 से 999, 1.000 से 999.999 से 999.999.999 तक की संख्याएँ
/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/
1 से 999, 1.000 से 999.999 से 999.999.999 तक की संख्याएँ स्वीकार करता है, लेकिन 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333 जैसी संख्याएँ अस्वीकार करता है
वैकल्पिक दशमलव के साथ संख्या सत्यापन (कीमत के लिए)
0 से 199 तक की संख्याएँ स्वीकार करता है, जिनमें 2 दशमलव अंक वैकल्पिक हैं:
/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/
हज़ार विभाजक के साथ संख्या सत्यापन
विभाजक के रूप में स्पेस, ऋणात्मक चिह्न के बिना
/^(?!0)\d{1,3}(\ \d{3})*$/
विभाजक के रूप में बिंदु, ऋणात्मक चिह्न स्वीकार्य
/^-?(?!0)\d{1,3}(\.\d{3})*$/
यह दो दशमलव अंक अनिवार्य करता है और 1.00 से 999,999,999.00 तक की संख्याएँ स्वीकार करता है, जिनमें हज़ार/मिलियन को अलग करने वाला कॉमा वैकल्पिक है। इनमें ये सभी शामिल हैं: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 लेकिन 1,23.00, 12,3.4 या 1234,43.04 स्वीकार नहीं किए जाते
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
उपरोक्त के समान: दो दशमलव अंक अनिवार्य हैं, लेकिन दशमलव विभाजक "," से पहले "0" स्वीकार किया जाता है।
/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
उपरोक्त के समान, लेकिन दो दशमलव अंक वैकल्पिक हैं:
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/
महीना (1-12)
यदि आप किसी व्यक्ति के जन्म का महीना पूछना चाहते हैं, तो आप इनपुट को इस प्रकार सत्यापित कर सकते हैं:
/^[0]*[1-9]$|^[0]*1[0-2]$/
न्यूनतम चौड़ाई (इस उदाहरण में 3 पर सेट)
/^.{3,}$/
मुद्रा
अमेरिकी मुद्रा (डॉलर चिह्न और सेंट वैकल्पिक)
/^\$?\d+(\.(\d{2}))?$/
कॉमा के उपयोग की जाँच करें:
/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/
स्विस कीमत
दशमलव बिंदु के बाद दो अंकों वाली संख्या, जिसका अंतिम अंक 5 या 0 हो:
/^(\d+)(\.\d(05)?)?$/
स्कोर का सत्यापन
1-10
/^[1-9]{1}$|^10$/
1-100
/^[1-9]?[0-9]{1}$|^100$/
टेक्स्ट सत्यापन
एक से ज़्यादा छोटे टेक्स्ट प्रश्न का प्रकार फ़िलहाल न्यूनतम या अधिकतम जवाबों का समर्थन नहीं करता। इसका एक उपाय है नियमित अभिव्यक्ति के साथ लंबे मुफ़्त टेक्स्ट प्रश्न का प्रकार उपयोग करना।
नीचे दिया गया एक्सप्रेशन जाँचता है कि कम से कम 3 और अधिकतम 10 पंक्तियों में प्रति पंक्ति कम से कम एक शब्द हो:
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is
यदि आप, मान लीजिए, प्रति पंक्ति पाँच शब्द चाहते हैं, तो आप पहले और अंतिम स्टार/तारांकन को {4,} में बदल सकते हैं:
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is
यदि आप प्रति पंक्ति एक या अधिक शब्द चाहते हैं (पंक्ति 1 से पंक्ति 5 के बीच), तो आप अंतिम curly braces के अंदर की सामग्री को 0,4 में बदल सकते हैं (ध्यान दें कि आप 0 का उपयोग इसलिए करते हैं क्योंकि पहली पंक्ति पहले से मेल खा रही है)।
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is
शब्द गणना
निम्न एक्सप्रेशन अनुमत शब्दों की संख्या को न्यूनतम 1 और अधिकतम 200 तक सीमित करता है:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
न्यूनतम बढ़ाने के लिए {0,199} का शून्य वाला भाग बदलें।
अधिकतम बढ़ाने या घटाने के लिए {0,199} का "199" वाला भाग बदलें।
समय सत्यापन
समय प्रारूप लिखने के कई तरीके हैं। कुछ संभावित विकल्प 12 घंटे या 24 घंटे, सेकंड के साथ या उनके बिना हैं। यद्यपि तिथि प्रश्न का प्रकार उपयोग करना एक विकल्प है (यह समय भी ले सकता है), आप नीचे दिए गए सत्यापन के नियमित अभिव्यक्ति एक्सप्रेशनों में से किसी एक के साथ संक्षिप्त मुफ़्त टेक्स्ट प्रश्न का प्रकार उपयोग कर सकते हैं।
निम्न तीन सत्यापन स्ट्रिंग 24 घंटे के समय की जाँच करती हैं (क्रम से): बिना सेकंड के, वैकल्पिक सेकंड के साथ, और अंत में अनिवार्य सेकंड के साथ:
/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/
निम्न तीन 12 घंटे के समय से मेल खाते हैं, ऊपर की तरह: सेकंड के साथ, वैकल्पिक सेकंड के साथ और अनिवार्य सेकंड के साथ:
/^(?">00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/
/^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/
/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/
निम्न तीन 12 या 24 घंटे के समय से मेल खाते हैं, ऊपर की तरह: सेकंड के साथ, वैकल्पिक सेकंड के साथ और अनिवार्य सेकंड के साथ:
/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/
/^(?:(?:00:[0-5][0-9](?[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?[0-5][0-9])?)$/
/^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/
अमेरिकी राज्य
किसी एक राज्य को सत्यापित करने के लिए निम्नलिखित का उपयोग करें (उदाहरण टेक्सास है):
- TX सिर्फ़ अपरकेस में:
/^(TX)$/
- tx सिर्फ़ लोअरकेस में:
/^(tx)$/
- TX अपरकेस या लोअरकेस में:
/^([T|t][X|x])$/
अपशब्द फ़िल्टर
किसी उत्तर से अपशब्दों को फ़िल्टर करने के लिए:
/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/
"ENTERPROFANITYHERE" को अपने अपशब्द से बदलें।
यदि आप अपने अपशब्द के रूप में "ass" या "hell" दर्ज करते हैं, तो \b "assassination" और "hello" जैसे शब्दों को स्वीकार होने देगा। यह तब भी काम करता है जब आप उत्तरों से अन्य शब्दों, नामों आदि को हटाना चाहते हैं।
उपयोगी लिंक
इस विकी अनुभाग की शुरुआत में हम रेगुलर एक्सप्रेशन को जाँचने/बनाने के लिए https://regex101.com/ का उपयोग करने की सलाह देते हैं। यदि आप पहले विकल्प से संतुष्ट नहीं हैं, तो एक्सप्रेशन बनाने के लिए आप https://www.regextester.com/ का भी उपयोग कर सकते हैं। रेगुलर एक्सप्रेशन को विज़ुअलाइज़ करने के लिए आप https://extendsclass.com/regex-tester.html का उपयोग कर सकते हैं।