2012-11-08 13 views
20

हाय की अनुमति देने के लिए रेगेक्स हाय सब मैं जावास्क्रिप्ट/jquery में अल्फान्यूमेरिक, -, _ या स्पेस को अनुमति देने के लिए नियमित अभिव्यक्ति की खोज कर रहा हूं। मैं googling थक गया लेकिनअल्फान्यूमेरिक, -, _ और स्पेस

कोई भी मुझे इस में मदद कर सकता है।

अग्रिम धन्यवाद।

+0

'/ [a-z \ d \ -_ \ s] +/i' आज़माएं। लेकिन आप _learn_ regex करना चाह सकते हैं। आप उन्हें वेब पर नहीं ढूंढ सकते हैं, विशेष रूप से यदि यह आम नहीं है। – elclanrs

+0

हाँ मैं उस पर बहुत कमजोर – rahul

+0

@elclanrs मेरे लिए काम नहीं कर रहा हूँ – rahul

उत्तर

29

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

/^[a-z\d\-_\s]+$/i 
+2

@rahul: यह काम करता है लेकिन Nevir के जवाब की जांच, क्योंकि यह बहुत काम करना चाहिए और यह थोड़ा कम है। मूल रूप से '\ w' का अर्थ अल्फा + अंडरस्कोर है, यह सिर्फ एक शॉर्टकट है जैसे '\ d' का अर्थ है' [0-9]'। – elclanrs

6
var string = 'test- _ 0Test'; 
string.match(/^[-_ a-zA-Z0-9]+$/) 
53

Character sets यहां एक टन की मदद करेगा।

  • आप एक \w है, जो JavaScript में [A-Za-z0-9_] (अन्य भाषाओं में भिन्नता हो सकती) के रूप में ही है साथ अक्षरांकीय मिलान कर सकते हैं: आप एक मिलान अक्षर हैं जो आप को मान्य करने के लिए सेट बनाना चाहते हैं।
  • जो - और रिक्त स्थान छोड़ देता है, जिसे [\w\- ] जैसे मिलान करने वाले सेट में जोड़ा जा सकता है। हालांकि, अगर आप सिर्फ अंतरिक्ष चरित्र के बजाय \s का उपयोग कर विचार कर सकते हैं
    • ध्यान दें कि मैं भागने रहा हूँ -\- के रूप में तो यह है कि regex इंजन नहीं है (\s भी टैब, और रिक्त स्थान को के अन्य रूपों से मेल खाता है) A-Z
  • अंतिम तरह एक चरित्र सीमा के साथ यह भ्रमित अप, तो आप शायद कि पूरे स्ट्रिंग से मेल खाता by anchoring शुरू सुनिश्चित करना चाहते हैं और ^ और $
  • के माध्यम से खत्म

पूर्ण regex आप शायद के लिए देख रहे है:

/^[\w\-\s]+$/ 

(ध्यान दें कि the + indicates कि वहाँ होना चाहिए कम से कम इससे मिलते हुए के लिए एक चरित्र; बजाय एक * उपयोग करते हैं, अगर एक शून्य लंबाई स्ट्रिंग भी ठीक है)

अंत में, http://www.regular-expressions.info/ एक भयानक संदर्भ


बोनस अंक है: इस regex नहीं मैच गैर- ASCII alphas। दुर्भाग्यवश, अधिकांश ब्राउज़रों में रेगेक्स इंजन नामित चरित्र सेट, but there are some libraries to help with that का समर्थन नहीं करता है।

भाषाओं/प्लेटफार्मों है कि वर्ण सेट नामित समर्थन के लिए, आप उपयोग कर सकते हैं /^[\p{Letter}\d\_\-\s]+$/

+1

यह मेरा जवाब से बेहतर है यह चिह्नित कर सकते हैं काम कर रहा है, के बाद से '[az [0-9] _]/मैं' घ रूप में ही है '\ w' – elclanrs

8
/^[-\w\s]+$/ 

\ मैचों पत्र, अंक डब्ल्यू, और underscores

\ रों मैचों रिक्त स्थान, टैब, और लाइन टूट जाता है

- से मेल खाता है हाइफन (यदि आप अपने चरित्र में हाइफन उदाहरण स्थापित किया है [az], के लिए सुनिश्चित हो [A-Za-z0-9?spaceHere,_-] वहाँ regexp में) की तरह तो [-az] शुरुआत

2
var regex = new RegExp("^[A-Za-z0-9? ,_-]+$"); 
      var key = String.fromCharCode(event.charCode ? event.which : event.charCode); 
      if (!regex.test(key)) { 
       event.preventDefault(); 
       return false; 
      } 

पर हाइफन का मैं प्रश्न चिह्न '?' के बाद एक शाब्दिक जगह है। यह अंतरिक्ष से मेल खाता है। /^[-\w\s]+$/ और /^[a-z\d\-_\s]+$/i जैसे अन्य लोग मेरे लिए काम नहीं कर रहे थे।

+0

यह मूलभूत विशेष पात्रों को अनुमति देता है जिन्हें "",?,: .... .... और दूसरों को अवरुद्ध करना आवश्यक है। धन्यवाद – Rigin

0

मेरे लिए मैं एक रेगेक्स चाहता था जो पहले की तरह तारों का समर्थन करता है। असल में, उद्देश्य कुछ विदेशी देशों को डाक प्रारूप का समर्थन करना है क्योंकि यह रिक्त स्थान के साथ अल्फान्यूमेरिक होना चाहिए।

  1. ABC123
  2. एबीसी 123
  3. ABC123 (स्थान)
  4. एबीसी 123 (अंतरिक्ष)

तो मैं नीचे के रूप में कस्टम regex लिख कर समाप्त हो गया।

/^([a-z]+[\s]*[0-9]+[\s]*)+$/i 

enter image description here

यहाँ, मैं [\s]* में * दी के रूप में यह अनिवार्य एक स्थान की नहीं है। एक डाक कोड मेरे मामले में जगह हो सकती है या नहीं हो सकती है।

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