3

住所に一致する正規表現を見つけようとしています。番地の形式は、2 桁または 3 桁の数字の後に番地名のテキスト文字列が続き、最後が「Street」または「Road」である必要があります。

したがって、有効なアドレスは次のようになります。

  • 12 フェイクストリート
  • 12 フェイクロード
  • 123フェイクストリート
  • 123 フェイクロード

無効なアドレスは次のとおりです。

  • 1 フェイクストリート
  • 1 フェイクロード
  • 1234 フェイク ストリート
  • 1234 フェイクロード


preg_match("/^[0-9]{2,3} *[a-zA-Z] *(Street|Road)$/", $_POST['street'])

これにアプローチするために複数の方法を試しましたが、数字を正しく機能させることができません。試し/^[0-9]{2,3}$/てみると、それ自体は機能しますが、文字列式を追加すると、めちゃくちゃになります。また、^ または $ なしでその数式を使用すると、3 桁を超える任意の桁数が検証されます。したがって、1234、12345 などが機能します。

4

1 に答える 1