就像有人提交“Jame c+@risti”(不是真实姓名)一样,它会返回 false。那里有很多符号字符,需要很长时间才能手动过滤。我也想通过拉丁语、中文、孟加拉语等大陆语言字符...但想拒绝那些非法的名字(例如:+↙▶ⓚ!♥等)
问问题
538 次
1 回答
0
确定什么是有效名称和无效名称非常困难。
如果它在Falsehoods Programmers Believe About Names中有详细说明。
简而言之,您可以简单地扫描非法字符。例如
<?php
function isValidName($name) {
$illegals = array("+", "↙", "▶", "ⓚ", "!", "♥");
foreach ($illegals as $illegal) {
if (strpos($name, $illegal)) { return false; }
}
return true;
}
这是非常低效的,您应该更愿意允许大多数任何东西作为名称。特别是考虑到您希望在名称中接受中文和其他非 ascii 字符。众所周知,PHP 对多字节符文的支持很差,所以这本身就是另一个问题。
于 2013-09-19T04:55:26.477 回答