1

重複の可能性:
クレジットカードの有効期限(有効期限)を説明する正規表現

4桁のクレジットカードの有効期限を検証するための正規表現パターンを見つけようとしています。フォーマットはYYMM

私は試し[12-99]{2}[0-12]{2} ましたが、これは月として00を許可します

ですから、先行ゼロを考慮しながら、3桁目と4桁目を0から12までの数字と一致させる方法が本当に必要だと思います

何か案は?

4

1 に答える 1

3

[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桁は使用できなくなります)。

于 2012-11-19T23:22:56.487 に答える