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 に答える