Using Arabic characters with ctype_alnum

2019-02-27 11:34发布

I need to allow Arabic usernames on my website which is already using ctype_alnum to validate the username field. When I try to use Arabic usernames, the validation error message is returned. ctype_alnum does not recognize arabic characters as letters and numbers. How can i work around this ?

标签: php arabic
2条回答
【Aperson】
2楼-- · 2019-02-27 11:40

ctype_alnum only recognizes 0-9A-Za-z.

You can either use regular expressions (as crothhass posted while I was writing this), or you can attempt to convert Arabic into Latin alphabet, check this with ctype_alnum, then convert it back again.

But what I actually recommend is to look at the problem from the other direction, and just check for characters that you DON'T want. This is probably spaces and some punctuation, since you are likely using UTF-8 anyway and can accept anything else.

查看更多
甜甜的少女心
3楼-- · 2019-02-27 11:52

You can find all Arabic Characters by using this Regex:

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

If the matched length equals the username length it is an arabic username.

查看更多
登录 后发表回答