web-dev-qa-db-ja.com

2桁の数字と一致する正規表現(クレジット/デビットカード発行番号を検証するため)

正規表現を使用して正確に2文字の文字列を一致させたいのですが、これらの文字は両方とも0から9の間である必要があります。一致する文字列は、ASP.NET MVCビューがレンダリングされます

これまでのところ、私は正規表現を持っています

[0-9]{2}

および次の文字列入力のリストから

  • 456
  • 55 44
  • 12

正規表現を適用すると、次の一致が返されます

  • 45
  • 55
    44
  • 12

だから、私は解決策の半分を持っています....実際に強制したいのは、文字列も正確に2文字の長さなので、文字列のリストから、一致する必要があるのは1つだけです

12

私は正規表現でアマチュアとして認められており、これを使用して、ASP.NET MVCモデルのカード発行番号を以下のように検証しています。

[Required]
[RegularExpression("[0-9]{2}")]
public string IssueNumber { get; set; }

私が尋ねていることは非常に簡単であると確信していますが、マッチングの一部として長さを制限する例は見つかりませんでした。

前もって感謝します。

20
phil

開始(^) そして終わり ($)行インジケータの:

^[0-9]{2}$

一部の言語には、find関数を使用していたように、文字列全体と照合できる関数もあります。文字列全体に一致すると、正規表現が上記の代替として機能します。上記の正規表現も機能しますが、^および$は冗長です。

45
Dukeling

アンカーを使用して、文字列^の先頭と文字列$の末尾を一致させる必要があります

^[0-9]{2}$
11
Jerry

このような何かが動作します

/^\d{2}$/
3
Koushik Das