Usando caracteres árabes com ctype_alnum

Eu preciso permitir nomes de usuários em árabe no meu site que já está usando ctype_alnum para validar o campo de username . Quando eu tento usar nomes de usuários em árabe, a mensagem de erro de validação é retornada. ctype_alnum não reconhece caracteres árabes como letras e números. Como posso contornar isso?

Você pode encontrar todos os caracteres árabes usando este Regex:

 preg_match("/^[a-zA-Z\p{Cyrillic}0-9\s\-]+$/u", $string); 

Se o comprimento correspondente é igual ao comprimento do nome de usuário, é um nome de usuário árabe.

Ctype_alnum só reconhece 0-9A-Za-z.

Você pode usar expressões regulares (como crothhass postado enquanto eu estava escrevendo isso), ou você pode tentar converter árabe em alfabeto latino, verifique isso com ctype_alnum e, em seguida, convertê-lo novamente.

Mas o que eu realmente recomendo é olhar para o problema da outra direção, e apenas verificar se há caracteres que você NÃO quer. Este é provavelmente espaços e alguma pontuação, já que você provavelmente usa UTF-8 e pode aceitar qualquer outra coisa.

Intereting Posts