文字、数字、スペース、アンスコア、ハイフンのみを許可したい。
これまでのところ、このpreg_matchでうまくいくと思いました。
if(preg_match('/[^a-z0-9 _]+$/i', $name)) {
$error = "Name may only contain letters, numbers, spaces, \"_\" and \"-\".";
}
しかし、文字列内の特殊文字はエラーを生成しないことに気づきました。例えば
こんにちは"@£$joe
エラーは発生しません。少し変更して機能させることは可能ですか、それとも別の解決策が必要ですか?