У меня есть следующая модель представления в приложении asp.net mvc.Как применить различные регулярные выражения для просмотра свойства модели?
[Required]
public string Name { get; set; }
[Required]
public int Age { get; set; }
public DateTime DateOfBirth { get; set; }
public Address CurrentAddress { get; set; }
Объект My Address содержит свойство Post Code, которое имеет атрибут RegularExpession для проверки почтовых индексов Великобритании.
public class Address
{
...
[RegularExpression(@"^[A-Z]{1,2}[0-9][0-9A-Z]? [0-9][A-Z]{2}$")]
public string PostCode { get; set; }
...
}
Я хочу расширить текущую функциональность, чтобы проверять PostCode, используя другое регулярное выражение, например, если человек не является резидентом Великобритании.
Любые идеи, как я мог бы это достичь? Есть ли способ изменить значение регулярного выражения во время выполнения? Если вам нужна дополнительная информация, сообщите мне, и я обновлю вопрос.
Возможного дубликат (http://stackoverflow.com/questions/11959431/how-to-create -a-custom-validation-attribute) – eocron
Вы не можете изменить значение атрибута во время выполнения (атрибуты являются метаданными и должны быть известны во время компиляции). Вы можете написать свой собственный условный атрибут проверки и передать регулярное выражение для каждой страны и условно применить регулярное выражение на основе выбранной страны. Но ваш код будет огромным (например, регулярное выражение для проверки австралийского почтового кода: '^ (0 [289] [0-9] {2}) | ([1345689] [0-9] {3}) | (2 [0-8] [0-9] {2}) | (290 [0-9]) | (291 [0-4]) | (7 [0-4] [0-9] {2}) | (7 [8-9] [0-9] {2}) $ ') –
И вы можете проверить [эти ответы] (http://stackoverflow.com/questions/164979/uk-postcode-regex- всеобъемлющий), которые обсуждают регулярное выражение для британских почтовых индексов –