たとえば、誰かが "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 に答える