Seshu B Ответов: 1

Как применить валидацию текстовое поле должно принимать начальный номер 1300 или 1800 только в ASP.NET mvc5


Всем привет,
я хочу применить валидацию для текстового поля, оно должно принимать только начальный номер 1300 или 1800.. это мое требование
пожалуйста, предоставьте soultion относительно этого

Что я уже пробовал:

[Required(ErrorMessage = "Please enter the Telephone")]
       [RegularExpression("(^1300\d{6}$)|(^1800\d{6}$)", ErrorMessage = "Entered number must be start with 1300 or 1800")]
       [Display(Name = "Telephone *")]
       public string Telephone { get; set; }

Patrice T

В чем проблема с этим регулярным выражением ?

Seshu B

он не принимает символ \ перед d{6}

Patrice T

Покажите пример того, что вы хотите сопоставить.

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

1 Ответов

Рейтинг:
1

Richard Deeming

В C# есть два типа строковых литералов - регулярные и дословные.
Строковые Литералы | Спецификация Языка C# | Microsoft Docs[^]

Вы используете обычный строковый литерал, что означает, что вам нужно экранировать определенные символы, добавляя к ним префикс \. Для буквального \, вам нужно удвоить его:

[RegularExpression("(^1300\\d{6}$)|(^1800\\d{6}$)", ErrorMessage = "Entered number must be start with 1300 or 1800")]

Кроме того, вы можете использовать дословный строковый литерал, добавив к нему префикс @:
[RegularExpression(@"(^1300\d{6}$)|(^1800\d{6}$)", ErrorMessage = "Entered number must be start with 1300 or 1800")]