PHP の POST メソッドで処理されているフォームを検証しようとしています。渡される値の例としては、名前、年齢、性別、性格タイプなどがあります。
与えられたユーザーデータが正しいかどうかを判断するために、正規表現を使用しています。
たとえば、ここに私が仕事をするようになったもののいくつかがあります..名前(空白でない限り、それは問題ありません:
if (strlen($name) == 0)
これは私のために働いた。機能したもう 1 つのパーソナリティ タイプは、ユング パーソナリティ テストのタイプ (ISTP、ENTP、INFP など) である必要がありました。そのための私のコードは次のとおりです
if (!preg_match("/[IE]{1}[NS]{1}[FT]{1}[JP]{1}/", $per))
。 $per は、ユーザーが送信したユングの性格タイプです。これもうまくいきました。
私が苦労しているのは年齢です。0 ~ 99 である必要があるため、1 桁または 2 桁です。とても単純なものであるべきだと思いますが、何らかの理由で機能していません。私が試したREGEXは次のとおりです。
/\d{1,2}/
/[0-9]{1,2}/
/(\d|\d\d)/
/([0-9]|[0-9][0-9])/
これらのどれも機能しない理由がわかりません.4つすべてが基準に完全に一致するようです. 正規表現を正しく使用する方法を理解していない可能性がありますが、ここ数時間は例を熟読していたので、正しいはずだと確信しています。
どんな助けでも大歓迎です、ありがとう:)
編集:これがまったく役立つ場合、値「abcdefg」または「ab」を $age 値として渡すと、エラーが発生します(これは正しいです)。しかし、「100」、「333」、または「99999」の値を渡すと、一致するようになります(これは間違っているか、私が望んでいるものではありません)。これがもう少し説明に役立つことを願っています〜