2012-07-25 133 views
11

Me gustaría validar una cadena con un patrón que solo puede contener letras (incluidas las letras con acentos). Aquí está el código que uso y siempre devuelve "nok". No sé lo que estoy haciendo mal, ¿me pueden ayudar? graciaspreg_match con caracteres internacionales y acentos

$string = 'é'; 

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

Respuesta

21

Añadir el UTF-8 modifier flag (u) a su expresión:

/^\p{L}+$/ui 

Tampoco hay necesidad de envolver \p{L} dentro de una clase de caracteres.

+0

¡Gracias! Esto me estaba volviendo loco, tratando de obtener una expresión como '/ état (. *)/I' tratando de unir" États-unis "y" états-unis "... –

Cuestiones relacionadas