住所に一致する正規表現を見つけようとしています。番地の形式は、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 などが機能します。