0

こんにちは、初めての質問です... preg_match が機能しない次のパターンがあります。これは、UTF-8 エンコーディングの問題である可能性があることを学びました...または単に私のコーディングが悪いだけです!

次のパターンは機能しますが、アポストロフィでは機能しません (アポストロフィをエスケープしてもしなくても違いはありません)。

$pattern="/^([A-Za-z \'-])+$/";

次のパターンは、私が望むようにアポストロフィに対して機能しますが、&、#、および ; も使用できます。これは理想的ではありません:

$pattern="/^([A-Za-z '\-])+$/";

このパターンはすべての文字に対して適切に機能しますが、入力テキスト文字列でアポストロフィのインスタンスを 1 つしか許可しません (�*39; の 0* の意味がわかりません)。

$pattern="/^([A-Za-z \-])+(\'|&#0*39;)*([A-Za-z \-])+$/";

誰かが私が間違っている場所に光を当てることができますか? 私は答えを探して文字通り何百ページも読んできましたが、それは私を夢中にさせています!

4

3 に答える 3

1

試しましたか: "/[^a-zA-Z0-9'-]+/"

于 2013-09-10T09:44:52.560 に答える