2011-09-10 10 views
8

स्वीकार करने के लिए मैं एक जावास्क्रिप्ट रेगेक्स की तलाश कर रहा हूं यह सुनिश्चित करने के लिए कि स्ट्रिंग में केवल रिक्त स्थान, अक्षरों और - - मामले असंवेदनशील हैं।जावास्क्रिप्ट रेगेक्स केवल अक्षरों, रिक्त स्थान, और ñ

मैंने पहले ही कोशिश की है: /^[A-Za-z _]*[A-Za-z][A-Za-z _]*$/ लेकिन यह ñ स्वीकार करने में विफल रहता है।

+0

मैंने कोशिश की:/^ [ए-ज़ा-जे _] * [ए-ज़ा-जेड] [ए-ज़ा-जे _] * $/- लेकिन यह मान स्वीकार नहीं करता है। –

+0

ठीक है, तो आपके प्रश्न की तरह लगता है कि रीजिक्स में गैर-ASCII वर्णों को कैसे संभालना है। –

+1

हां, क्योंकि मुझे इस मामले में केवल ASCII मान की आवश्यकता है ñ –

उत्तर

11
/^[ñA-Za-z _]*[ñA-Za-z][ñA-Za-z _]*$/ 

और

/^[\u00F1A-Za-z _]*[\u00F1A-Za-z][\u00F1A-Za-z _]*$/ 

काम करना चाहिए।

जावास्क्रिप्ट रेगेक्स \u0000\uFFFF के माध्यम से समर्थन करता है।

+0

आपकी प्रतिक्रिया में सहायता मिली मुझे बहुत! धन्यवाद –

+3

यह मूल रूप से त्रुटिपूर्ण है कि आपने उसे पहले एनएफसी रूपांतरण के माध्यम से अपना डेटा चलाने के लिए नहीं बताया था। यदि वह नहीं करता है, तो वे पैटर्न काम नहीं करते हैं। मुझे यकीन है कि वह वास्तव में स्पेनिश वर्णमाला के लिए '[aábcdeéfghijklmnñoópqrstuúüvwxyzAÁBCDEÉFGHIJKLMNÑOÓPQRSTUÚÜVWXYZ] चाहता है, लेकिन यह केवल तभी काम करेगा यदि आप डेटा एनएफसी करते हैं !! – tchrist

4

यदि आप बस उस कारक को चाहते हैं, तो इसे [A-Za-zÑñ ] जैसे रेगेक्स में डालें। अन्यथा http://xregexp.com/ जैसे जावास्क्रिप्ट के लिए यूनिकोड-जानकार रेगेक्स लाइब्रेरी का उपयोग करें। अफसोस की बात है कि जेएस रेगेक्स यूनिकोड अनुपालन चरित्र वर्गों (जैसे \p{L} सी # रेगेक्स में) का समर्थन नहीं करते हैं

+0

क्या सी # वास्तव में आपको '\ pL' 'की बजाय' \ p {L}' लिखता है ????? यह वास्तव में गूंगा है, क्योंकि यह 7 सबसे आम मामलों के लिए विनिर्देशक की लंबाई को तीन गुना करता है। यह एक हफमैन विफलता है। कोई बहुत स्मार्ट नहीं था। आपको \ \ pL' को '\ w' से टाइप करने के लिए केवल थोड़ा कठिन बनाना होगा। अन्यथा लोग इसका उपयोग नहीं करेंगे। '\ p {एल}' एक डिज़ाइन बग है। – tchrist

+0

@ क्रिसमस लेकिन अंत में यह "अभिव्यक्ति" की लंबाई से दोगुनी से भी कम है। '\ p {एल}' 5 वर्ण और \ pL है 3. हाँ, \ pL बेहतर होगा, लेकिन मुझे लगता है कि गैर-बीएमपी वर्णों का समर्थन करना और \ X बहुत अधिक महत्वपूर्ण होगा :-) – xanatos

1

आपको एक चरित्र वर्ग का उपयोग करने की आवश्यकता है।

/[A-Za-z ñ]+/