如果有人提交“Jame c + @ risti”(不是实际名称),它将返回false。 那里有很多符号字符需要很长时间才能手动过滤。 我也想传递拉丁语,中文,孟加拉语等大陆语言字符......但是想拒绝哪些名字是非法的(例如:+↙▶ⓚ!♥等)
答案 0 :(得分:0)
确定什么是有效名称和非有效名称是非常困难的。
如果在Falsehoods Programmers Believe About Names中详细说明,则为长。
缺点是你可以简单地扫描非法字符。 E.g。
<?php
function isValidName($name) {
$illegals = array("+", "↙", "▶", "ⓚ", "!", "♥");
foreach ($illegals as $illegal) {
if (strpos($name, $illegal)) { return false; }
}
return true;
}
这是非常低效的,你应该更多地允许大多数作为名字。特别是考虑到你希望在名字中接受中文和其他非ascii字符。 PHP的多字节符文支持非常糟糕,所以这本身就是另一个问题。