मैं उपयोगकर्ता 0-20 रेंज में संख्या दर्ज करने बनाना चाहते और वे दोनों प्रवेश कर सकते हैं 01 और 1नियमित अभिव्यक्ति रेंज में केवल संख्या अनुमति देने के लिए 1-20
इसक्या मैं अब तक किया है
/^[1-9]|0[1-9]|1[0-9]|2[0]$/
लेकिन यह काम नहीं करता है।
मैं उपयोगकर्ता 0-20 रेंज में संख्या दर्ज करने बनाना चाहते और वे दोनों प्रवेश कर सकते हैं 01 और 1नियमित अभिव्यक्ति रेंज में केवल संख्या अनुमति देने के लिए 1-20
इसक्या मैं अब तक किया है
/^[1-9]|0[1-9]|1[0-9]|2[0]$/
लेकिन यह काम नहीं करता है।
समस्या |
^
और $
की तुलना में कम पूर्वता है, तो अपने पैटर्न का मतलब ^[1-9]
या0[1-9]
या1[0-9]
या2[0]$
है जो: केवल एकल अंक मूल्यों ^
द्वारा प्रतिबंधित कर रहे हैं, और केवल 20
प्रतिबंधित है $
द्वारा।
आप ^
और $
को दोहरा सकते हैं या तो प्रत्यावर्तन की प्रत्येक शाखा में, वरना (?:...)
में प्रत्यावर्तन लपेट एक गैर पर कब्जा करने उपसूचक बनाने के लिए:
/^[1-9]$|^0[1-9]$|^1[0-9]$|^20$/
/^(?:[1-9]|0[1-9]|1[0-9]|20)$/
(मैं भी बदलने की स्वतंत्रता लिया है [0]
से 0
।)
कोशिश इस
/^([01]?\d|20)$/
0 या 1 (वैकल्पिक) कम से कम एक अंक की या 20
यह 00 की अनुमति देगा। क्या इसे प्रतिबंधित किया जाना चाहिए? –
यदि 00 की अनुमति नहीं है/^ (0 [1-9] | 1 \ डी | 20) $/ –
धन्यवाद यह अब काम करता है। –
कैसे के बारे में
/^([0-1]?[0-9]|20)$/
समस्या यह है कि 20 एक विशेष मामला है है। दूसरे खंड में इसे शामिल किया गया है। पहला खंड बाकी को शामिल करता है। मैं पर्ल-शैली नियमित अभिव्यक्तियों को मान रहा हूं, क्योंकि आपने संदर्भ निर्दिष्ट नहीं किया है।
क्या आप मुझे बता सकते हैं कि मेरे कोड में क्या गलत है? मैंने आज सुबह खुद ही रेगेक्स सीखा। –
अपने उत्तर में निर्दिष्ट खंडहर के रूप में, यह एक प्राथमिक बात है - यह सुनिश्चित करने के लिए कि आपको '^' और '$' चिह्न की शेष अभिव्यक्ति की तुलना में कम प्राथमिकता है, आपको ब्लॉक को संश्लेषित करने की आवश्यकता होगी। –
इससे आज मेरी मदद मिली ... धन्यवाद :) – AbdulAziz
@AbdulAziz: आपका स्वागत है! :-) – ruakh