2012-07-25 15 views
11

मैं एक स्ट्रिंग को एक पैटर्न के साथ मान्य करना चाहता हूं जिसमें केवल अक्षरों (उच्चारण के साथ अक्षरों सहित) हो। यहां मैं उपयोग किया गया कोड है और यह हमेशा "nok" देता है। मुझे नहीं पता कि मैं क्या गलत कर रहा हूं, क्या आप मदद कर सकते हैं? धन्यवादअंतरराष्ट्रीय अक्षरों और उच्चारणों के साथ preg_match

$string = 'é'; 

if(preg_match('/^[\p{L}]+$/i', $string)) 
{ 
    echo 'ok'; 
} else{ 
    echo 'nok'; 
} 

उत्तर

21

अपने अभिव्यक्ति के लिए UTF-8 modifier flag (यू) जोड़ें:

/^\p{L}+$/ui 

भी एक चरित्र वर्ग के अंदर \p{L} रैप करने के लिए कोई जरूरत नहीं है।

+0

धन्यवाद! यह मुझे पागल कर रहा था, 'एटैट्स (। *)/I' "एटैट्स-यूनिस" और "états-unis" से मेल खाने की कोशिश कर रहा है जैसे अभिव्यक्ति प्राप्त करने का प्रयास कर रहा है ... –

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