2014-07-07 6 views
5

थोड़ा अटक गया (RegEx मेरा मजबूत बिंदु बिल्कुल नहीं है!) - मुझे एक अभिव्यक्ति की आवश्यकता है जो केवल संख्याओं वाली किसी भी स्ट्रिंग के विरुद्ध मान्य होगी और अक्षरों में से प्रत्येक में से कम से कम एक होना चाहिए (ऊपरी और लोअरकेस अदला-बदले और अनुमत हैं)। इसमें विशेष वर्ण या सफेद जगह नहीं हो सकती है।RegEx: कम से कम एक संख्या और अक्षर होना चाहिए लेकिन कोई अन्य अक्षर/सफेद स्थान

कुछ पहले अनुसंधान कर रहा है और इस पाया है लेकिन यह खाली स्थान के बाहर नहीं खाली स्थान के और विशेष वर्णों को बाहर करने करने के लिए तो मैं इसे संशोधित नहीं कर सकते हैं मेरे प्रयासों के बावजूद:

^.*(?=.*\d)(?=.*[a-zA-Z]).*$ 

तार की जरूरत है कि के कुछ उदाहरण मान्य करने के लिए:

  • ieoEon43
  • 43ifsiojfdfs
  • 6i
  • ijf943kNFSfsf

किसी भी मदद की बहुत सराहना की जाएगी! यदि यह मायने रखता है कि मैं जावास्क्रिप्ट में इन अभिव्यक्तियों को चला रहा हूं।

उत्तर

6

इस प्रयास करें:

/^(?=.*[a-z])(?=.*\d)[a-z\d]+$/i 

Regex101 Demo

स्पष्टीकरण:

Regular expression visualization

Debuggex Demo

संपादित: फिक्स्ड कल्पना आयन अक्षर मुद्दे।

+0

धन्यवाद - कि सफेद स्थान के साथ मदद की - लेकिन यह अभी भी विशेष वर्ण स्वीकार करने के लिए लगता है (यानी: fdfjf4343FFsk3 £ 3% 3 £ "& * (* & *) से गुजरता है) – trvo

+0

क्षमा करें, याद विशेष अक्षर पहले पास पर इंगित करते हैं। यह अब काम करता है। –

+0

बिल्कुल सही - धन्यवाद! – trvo

-4

आईवी ने आपके प्रश्न से जो कुछ समझा, उसके आधार पर आईवी ने regxr 1.0 पर एक डेमो किया।

आप इस लिंक का अनुसरण यदि आप डेमो खुद देख सकते हैं: Regexr demo

UPDATED: regex है: /^([a-z]+[0-9]+|[0-9]+[a-z]+)$/

आप इसे केस संवेदी में बना सकते हैं: /^([a-z]+[0-9]+|[0-9]+[a-z]+)$/i

+0

यह 'a' को मान्य करता है, जिसमें कोई संख्या नहीं है। –

2

एक और मज़ा और महिमा के लिए प्रयास! (यह कम है!)

^([a-z]+\d+|\d+[a-z]+)\w*$ 

Regular expression visualization

Debuggex Demo

EDIT3:

एक छोटे से ठीक बनाया गया है और अब यह डबल अन्य कितनी तेज़ी से उत्तर है !!!

JSPERF

+0

अच्छा विचार है, लेकिन यह उन तारों पर असफल हो सकता है जो वर्णों के समान वर्ग ('1a1' या 'a1a') के साथ शुरू और समाप्त होते हैं। –

+0

@TimPietzcker तय, मुझे उम्मीद है! – Mosho

+1

बहुत बेहतर (हालांकि '\ w' भी' _' से मेल खाता है) :) –

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