正規表現を使用して JavaScript で住所を検証したいのですが、正規表現についてあまり知りません。独自の正規表現を作成しようとしました/^[a-zA-Z\s](\d)?$/
が ( )、正しく機能していないようです。
私が達成したいのは、文字、スペース、および少なくとも 1 つの数字 (必須) を許可することです。また、スラッシュを挿入する可能性/
があるはずですが、必須ではありません。
誰でもそれを手伝ってもらえますか?
正規表現を使用して JavaScript で住所を検証したいのですが、正規表現についてあまり知りません。独自の正規表現を作成しようとしました/^[a-zA-Z\s](\d)?$/
が ( )、正しく機能していないようです。
私が達成したいのは、文字、スペース、および少なくとも 1 つの数字 (必須) を許可することです。また、スラッシュを挿入する可能性/
があるはずですが、必須ではありません。
誰でもそれを手伝ってもらえますか?
始めてみましょうが、正規表現に慣れるにつれて、より具体的になることに気付くでしょう。まず、正規表現を調べてみましょう。
/^[a-zA-Z\s](\d)?$/
ここで注意すべき重要なことは、この正規表現はせいぜい 2 文字の文字列にしか一致しないということです! 文字クラス は、単一[ ... ]
の文字に一致します。この場合、文字と空白です。これをquantifierと呼ばれるものと組み合わせる必要があります。たとえば、 「0 個以上」、「1 個以上」、「0 個または 1 個」を意味します。他の場所で量指定子を使用しましたが、「0 または 1」の数字文字を言っています。しかし、あなたが本当に望むものは、次のようになります。 *
+
?
(\d)?
/^[a-zA-Z\s\d\/]+$/
ここでは、「1 つ以上の」文字、空白、数字、またはスラッシュを指しています (スラッシュはバックスラッシュを使用してエスケープする必要があることに注意してください)。
最後に、「少なくとも 1 つの」数字が必要だとします。これは、「ルックアラウンド アサーション」と呼ばれる正規表現のより高度な構成を使用して実現できます。あなたはこれを求めている:
/^(?=.*\d)[a-zA-Z\s\d\/]+$/
特に、これは肯定的な先読みアサーションであり、自分で調べることができます。先読みアサーションなしでこれを行う別の方法は次のとおりです。
/^[a-zA-Z\s\d\/]*\d[a-zA-Z\s\d\/]*$/
これは明らかにより複雑ですが、これを理解できれば、正規表現を十分に理解できていることがわかります。幸運を!