/ रेलवे में áêìõü के साथ / validate_format_of स्ट्रिंग - रूबी-ऑन-रेल, रूबी, एन्कोडिंग

रेलवे में áêìõü के साथ validate_format_of स्ट्रिंग - रूबी-ऑन-रेल, रूबी, एन्कोडिंग

मैं एक फ्रेंच क्रिया संयुग्मन रेल वेबसाइट बना रहा हूं जहां उपयोगकर्ता क्रियाओं के संयोजन को सम्मिलित कर सकते हैं जैसे:

     se abstenir
m"appelle
êtes
achète

और मुझे उन क्रियाओं को वैध_format_of करने की आवश्यकता है। Apostrophes काफी आसान हैं, लेकिन êèã पात्रों के बारे में क्या?

अब तक मेरे पास है:

    word_format = /A[w]+[" ]?[w]*z/
validates_format_of (...), :with => word_format

जो उनसे मेल नहीं खाता है, जो स्पष्ट रूप से काम नहीं करते हैं। Regexp में áêĩ (...) भी शामिल है मुझे एक अमान्य मल्टीबाइट चार (यूएस-एएससीआईआईआई) त्रुटि देता है।

मुझे उन तारों को कम करने की भी आवश्यकता है,कौन सा रूबी अनदेखा कर रहा है, जिसके परिणामस्वरूप "VOUS êTES" उदाहरण के लिए है। मामूली जवाब हाथ से ऐसा प्रतीत होता है, लेकिन मुझे उम्मीद है कि रूबी / रेल मुझे फिर से आश्चर्यचकित करेंगे।

ऐसा लगता है कि यह एक कठिन समस्या है, और मैं रूबी / रेल की शक्ति के बाद से उम्मीद नहीं कर रहा था।

कोई मुझे एक सुराग दे सकता है?

उत्तर:

जवाब के लिए 0 № 1

आपको "स्थापित करने की आवश्यकता होगी UnicodeUtils उपरोक्त चीज़ के लिए।

#encoding: utf-8
require "unicode_utils/upcase"
puts UnicodeUtils.upcase("êtes Niño")#=> ÊTES NIÑO

रेगेक्स इस तरह दिख सकता है:

word_format = /A[[:word:]]+[" ]?[[:word:]]*z/

/[[:word:]]/ - निम्नलिखित यूनिकोड सामान्य श्रेणियों में से एक वर्ण पत्र, मार्क, संख्या, कनेक्टर_Punctuation।


जवाब के लिए 0 № 2

यह इसके बजाए दिखता है का w आपको पॉज़िक्स ब्रैकेट अभिव्यक्ति का उपयोग करने की आवश्यकता है [:alpha].

word_format = /A[:alpha]+[" ]?[w]*z/