Проверка правильности регулярного выражения свойства в модели

Я пытаюсь проверить свойство, которое должно иметь девятизначный код и не может заканчиваться четырьмя нулями или четырьмя девятками и должно вводиться без специальных символов.

Я попробовал следующий код

[RegularExpression(@"(^(?i:([a-z])(?!\1{2,}))*$)|(^[A-Ya-y1-8]*$)", ErrorMessage = "You can not have that")]
public string Test{ get; set; }

Но это не работает.

Пример: exasdea0000,asdea9999,exasde@0000 или же as_ea9999 не может быть введен.

Как мне этого добиться?

1 ответ

Решение

Вы можете написать свое регулярное выражение так:

^(?!\d+[09]{4}$)\d{9}$

Объяснение:

^                   // from start point
 (?!                // look forward to don't have
    .+              // some characters
    [09]{4}         // followed by four chars of 0 or 9
    $               // and finished
 )
 \d{9}              // nine characters of digits only
$                   // finished

[Regex Demo]

Другие вопросы по тегам