Regex соответствует 2-значному номеру (для проверки номера кредитной/дебетовой карты)

Я хотел бы использовать регулярное выражение для соответствия строке ровно 2 символа, и оба этих символа должны находиться в пределах от 0 до 9. Строка, которая будет соответствовать, будет поступать из однострочного текстового поля ввода, когда ASP Представлено представление .NET MVC

До сих пор у меня есть регулярное выражение

[0-9]{2}

и из следующего списка примерных вводных строк

  •   
  • 456  
  • 55 44  
  • 12

возвращаются следующие совпадения при применении регулярного выражения

  •   
  • 45  
  • 55
    44  
  • 12

Итак, у меня есть половина решения... то, что я на самом деле хочу обеспечить, состоит в том, что строка также имеет длину 2 символа, так что из списка строк единственное, что должно быть сопоставлено, это

12

Я принимаю любителя в регулярных выражениях и просто использую это для проверки номера проблемы с картой на модели ASP.NET MVC, как показано ниже.

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

Я уверен, что то, что я прошу, довольно просто, но я не смог найти примеры, ограничивающие длину как часть соответствия.

Спасибо, заранее.

Ответы

Ответ 1

Вы можете использовать индикаторы начала (^) и конца ($):

^[0-9]{2}$

Некоторые языки также имеют функции, которые позволяют вам сопоставлять целую строку, где - когда вы использовали функцию find. Соответствие всей строке приведет к тому, что ваше регулярное выражение будет работать как альтернатива вышеизложенному. Вышеупомянутое регулярное выражение также будет работать, но ^ и $ будут избыточными.

Ответ 2

Вам нужно использовать привязки для соответствия началу строки ^, а конец строки $

^[0-9]{2}$

Ответ 3

Что-то вроде этого будет работать

/^\d{2}$/