HTML フォームの名前フィールドから特定の文字、つまり文字、空白、一重引用符、ハイフン、ピリオドのみを許可する正規表現があります。パターンは次のとおりです。
return mb_ereg_match("^[\w\s'-\.]+$", $name);
問題は、$name にリテラル アスタリスクがある場合に、何らかの理由でこのパターンが true を返すことです。私が何かを見逃していない限り、これは不可能です。リテラル アスタリスクで複数の検索を実行しましたが、"\*"
意図的に一致させるパターンだけが見つかりました。
preg_match() の同じパターンは、"*John" のような文字列が渡された場合にも一致を返します。
私は一体何が欠けているのですか?