आगे जाना है और वहाँ एक बात समझ के बजाय बार-बार उपयोग करने के लिए इन:
[A-Za-z0-9 _]
[A-Za-z0-9]
मैं दो है (उम्मीद है कि बेहतर) उन दो के लिए प्रतिस्थापन:
[\w ]
[^\W_]
पहला व्यक्ति किसी भी शब्द चरित्र (अल्फान्यूमेरिक और _
, साथ ही यूनिकोड) और अंतरिक्ष से मेल खाता है। दूसरा मैच एक गैर-शब्द वर्ण या अंडरस्कोर नहीं है (केवल अल्फान्यूमेरिक, साथ ही यूनिकोड)।
यदि आप यूनिकोड मिलान नहीं करना चाहते हैं, तो अन्य उत्तरों के साथ चिपके रहें। लेकिन ये सिर्फ आंखों पर (मेरी राय में) आसान लगते हैं। इस लेखन के रूप में "पसंदीदा" जवाब ले रहा है और कम regexes का उपयोग कर हमें देता है:
^[\w ]*[^\W_][\w ]*$
शायद अधिक पठनीय, शायद कम। निश्चित रूप से छोटा आपकी पंसद।
संपादित करें:
बस एक नोट के रूप में, मैं पर्ल शैली regexes यहाँ यह सोचते हैं रहा हूँ। आपका रेगेक्स इंजन \ w और \ W जैसी चीज़ों का समर्थन कर सकता है या नहीं।
संपादित करें 2: जे एस regex परीक्षक है कि किसी को और कुछ बुनियादी उदाहरण से जुड़ा हुआ साथ
परीक्षण मेरा ठीक काम किया। कुछ भी व्यापक नहीं किया, बस यह सुनिश्चित करना चाहता था कि जेएस में \ डब्ल्यू और \ डब्ल्यू ठीक काम करें।
संपादित करें 3:
जे एस regex परीक्षक साइट के साथ कुछ यूनिकोड का परीक्षण करने की कोशिश की करने के बाद, मैं इस समस्या की खोज की है: उस पृष्ठ यूनिकोड के बजाय आईएसओ उपयोग करता है। कोई आश्चर्य नहीं कि मेरा जापानी इनपुट मेल नहीं खाता था। ओह ठीक है, इसे ठीक करना मुश्किल नहीं होना चाहिए:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
या तो। मुझे नहीं पता कि जावास्क्रिप्ट तक क्या किया जाना चाहिए, लेकिन मुझे यकीन है कि यह मुश्किल नहीं है।
स्रोत
2009-02-23 01:32:52
के रूप में टेक्स्ट फ़ील्ड में कुछ कारणों से अंडरस्कोर को बाहर निकालना, लेकिन आपको बिंदु मिल गया है .. – makeee
@makeee regex को कोड के रूप में चिह्नित करें (इसे 'अक्षर के साथ घेरे) और आप ठीक रहेगा। –
या मैंने जो किया, वह करें "अंडरस्कोर" से बचें। – paxdiablo