我需要在我的网站上允许使用ctype_alnum
的阿拉伯用户名来验证username
字段。当我尝试使用阿拉伯语用户名时,将返回验证错误消息。 ctype_alnum
不会将阿拉伯字符识别为字母和数字。我该如何解决这个问题?
答案 0 :(得分:2)
您可以使用此正则表达式找到所有阿拉伯字符:
preg_match("/^[a-zA-Z\p{Cyrillic}0-9\s\-]+$/u", $string);
如果匹配的长度等于用户名长度,则为阿拉伯语用户名。
答案 1 :(得分:0)
ctype_alnum仅识别0-9A-Za-z。
你可以使用正则表达式(在写这篇文章时发布crothhass),或者你可以尝试将阿拉伯语转换成拉丁字母,用ctype_alnum检查,然后再将其转换回来。
但我实际建议的是从另一个方向看问题,只检查你不想要的字符。这可能是空格和一些标点符号,因为你可能无论如何都使用UTF-8并且可以接受任何其他内容。