重複の可能性:
クレジットカードの有効期限(有効期限)を説明する正規表現
4桁のクレジットカードの有効期限を検証するための正規表現パターンを見つけようとしています。フォーマットはYYMM
私は試し[12-99]{2}[0-12]{2}
ましたが、これは月として00を許可します
ですから、先行ゼロを考慮しながら、3桁目と4桁目を0から12までの数字と一致させる方法が本当に必要だと思います
何か案は?
重複の可能性:
クレジットカードの有効期限(有効期限)を説明する正規表現
4桁のクレジットカードの有効期限を検証するための正規表現パターンを見つけようとしています。フォーマットはYYMM
私は試し[12-99]{2}[0-12]{2}
ましたが、これは月として00を許可します
ですから、先行ゼロを考慮しながら、3桁目と4桁目を0から12までの数字と一致させる方法が本当に必要だと思います
何か案は?
[12-99]
1
または2-9
またはを意味します。9
これは。と同等[1-9]
です。2番目の[0-12]
意味も同じです。0-1
または2
、これは。と同等[0-2]
です。
あなたはこのようなもののために行くことができます:
(1[2-9]|[2-9][0-9])(0[1-9]|1[0-2])
ご覧のとおり、数値範囲のチェックは正規表現では少し面倒です。これをプログラミング言語で使用している場合(ツールやXSD制限ではなく)、(\d\d)(\d\d)
プログラミング言語の整数不等式演算子を使用して、2つのキャプチャの数値範囲を確認して検証する必要があります。これにより、有効な年の下限を現在の年に依存させることもできます(したがって、2013年に12
なると、コードを変更しなくても、最初の2桁は使用できなくなります)。