文字、ピリオド、アポストロフィ、スペース、ハイフン以外のすべてを拒否するように、正しい表現をまとめるのに苦労しています。
これまでのところ、これはアポストロフィを除くすべてで機能します。アポストロフィは、シングルとダブルの両方の「\」でエスケープしようとしましたが、役に立ちませんでした。
if(!preg_match("/^[a-zA-Z'. -]+$/",$_POST['name']))
{
$error_name="The name you entered is invalid.";
}
//obrien - pass
//o'brien - fail
//Dr. OBrien - pass
//Dr. O'Brien - fail
これは、アポストロフィがそれをクリアしないことを除いて、完全に機能します。