2012-07-28 8 views
5

के साथ RegEx मैं Node.js. में कुछ मूल स्ट्रिंग परीक्षण करना चाहता हूं। मान लें कि मेरे पास एक ऐसा फॉर्म है जहां उपयोगकर्ता अपना नाम दर्ज करते हैं और मैं यह जांचना चाहता हूं कि यह सिर्फ बकवास या असली नाम है या नहीं।विस्तारित लैटिन वर्णमाला (ä ö ü è ß)

खुशी से (या मेरी जांच के लिए दुख की बात है) मुझे दुनिया भर के उपयोगकर्ताओं को मिलता है जिसका अर्थ है कि उनके नामों में गैर-अंग्रेजी वर्ण हैं, जैसे ä ö ü ß é। मुझे /[A-Za-z -]{2,}/ का उपयोग करने के लिए उपयोग किया गया था, लेकिन यह "Jan Buschtöns" जैसे नामों से मेल नहीं खाता है।

क्या मुझे अपने RegEx में काम करने के लिए हर संभव गैर-अंग्रेजी लेकिन लैटिन चरित्र मैन्युअल रूप से जोड़ना है? मैं 100+ वर्णों को लंबे समय तक RegEx नहीं चाहता हूं जैसे /[A-Za-z -äöüÄÖÜßéÉèÈêÊ...]{2,}/

+0

'/ \ w + /' जैसे चालें काम नहीं करती हैं। वे केवल अंग्रेजी पात्रों से मेल खाते हैं। – buschtoens

+2

और यदि आप किसी को सलीश नाम से प्राप्त करते हैं तो क्या होता है? [सलीश भाषाएं] (http://en.wikipedia.org/wiki/Salishan_languages) एक पत्र के रूप में '7' का उपयोग करें, उदाहरण के लिए" Swwxwú7mesh "; और कम अस्पष्ट नोट पर, कोरियाई, जापानी, चीनी, के बारे में क्या ... आप पढ़ सकते हैं [झूठ बोलने वाले प्रोग्रामर विश्वास के बारे में विश्वास] [http://www.kalzumeus.com/2010/06/17/falsehoods-programmers- विश्वास के बारे में/नाम भी)। मैं मूल रूप से सुझाव दे रहा हूं कि आप अपनी जांच के साथ परेशान नहीं हैं। –

+0

मैंने पहले ही एशियाई और किरिलिक भाषाओं के बारे में सोचा था। उनके पास लैटिन समकक्ष हैं जिनका उपयोग वे कर सकते हैं। और ... सलीश एक बहुत ही दुर्लभ मामला है। : डी – buschtoens

उत्तर

4

चेक http://www.regular-expressions.info/unicode.html और http://xregexp.com/plugins/

आप किसी भी पत्र चरित्र से मेल करने के \p{L} उपयोग करने के लिए यदि आप यूनिकोड शामिल करना चाहते हैं की आवश्यकता होगी।

यूनिकोड बोलते हुए, \w का विकल्प [\p{L}\p{N}_] है।

+0

आपको लगता है कि आपको js –

+0

@MrAnderson, ब्राउज़र प्लगइन नहीं, बस एक जावास्क्रिप्ट lib में ऐसा करने के लिए ['प्लगइन'] (http://xregexp.com/plugins/) की आवश्यकता है। Silvinci Node.js का उपयोग कर रहा है, और मॉड्यूल के रूप में XRegExp आयात करने के लिए यह बहुत आसान है। – slevithan

+0

"पॉज़िक्स चरित्र वर्ग" की खोज करें। जावास्क्रिप्ट regexes उन्हें समर्थन, और वे आम तौर पर (कम से कम आमतौर पर इस्तेमाल की जाने वाली मानव भाषाओं के लिए) आमतौर पर "यह एक पत्र है" या "यह एक अपरकेस अक्षर है" जैसे सवालों का जवाब दे सकते हैं। – ebohlman

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