0

就像有人提交“Jame c+@risti”(不是真实姓名)一样,它会返回 false。那里有很多符号字符,需要很长时间才能手动过滤。我也想通过拉丁语、中文、孟加拉语等大陆语言字符...但想拒绝那些非法的名字(例如:+↙▶ⓚ!♥等)

4

1 回答 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 回答