一致するJavaScript正規表現を作成しようとしています:
- 必須: 9 つ以上の数字。
- オプション: ダッシュ、スラッシュ、プラスおよびスペース文字。
- 禁止: その他の文字
これまでのところ、
^[0-9-+\/\s]{9,}$
これに関する唯一の問題 (私が思うに) は、数字以外の許可された文字を数えて、最小の 9 に達することです。
最小の 9 に達する数字のみをカウントするように修正するにはどうすればよいですか?
一致するJavaScript正規表現を作成しようとしています:
これまでのところ、
^[0-9-+\/\s]{9,}$
これに関する唯一の問題 (私が思うに) は、数字以外の許可された文字を数えて、最小の 9 に達することです。
最小の 9 に達する数字のみをカウントするように修正するにはどうすればよいですか?
これを単一の RE で解決したい場合 (必ずしも推奨されるわけではありませんが、役立つ場合もあります):
^[-+\/\s]*([0-9][-+\/\s]*){9,}$
または、最初と最後の文字を数字にしたい場合:
^[0-9](^[-+\/\s]*[0-9]){8,}$
つまり、数字の後に 8 つ以上のオプション文字が続き、それぞれが数字で終わるということです。
先読みを使用して、9桁以上の数字があるかどうかを確認できます
^(?=(\D*\d){9,})[\d/+ -]+$
--------------
|
|->match further only if there are 9 or more digits anywhere
また
^([/+ -]*\d){9,}[/+ -]*$
^([0-9][-+\/\s]*){9,}$
すべきです。
先読みで簡単
このパターンを試してください:
^(?=([^\d]*\d){9,})[0-9-+\/\s]*$