Объедините два регулярных выражения в одно при проверке атрибута

У меня есть два регулярных выражения.

  1. [RegularExpression(@".*[^ ].*", ErrorMessage ="Something")]проверить строку, которая содержит только пробелы (не любые другие символы, например: " ".length = 7).
  2. [RegularExpression(@"^[^~!@#$%&*]+$", ErrorMessage = "something")]проверить строку, содержащую ~!@#$%&* специальные символы.

Как можно объединить оба регулярных выражения в одно, потому что дублирование аннотации регулярного выражения не допускается в asp.net mvc.

1 ответ

Решение

Вы можете использовать

^[^~!@#$%&*]*[^~!@#$%&*\s][^~!@#$%&*]*$

Посмотреть демо-версию регулярного выражения

подробности

  • ^ - начало строки
  • [^~!@#$%&*]* - 0+ символов, кроме символа в ~!@#$%&* список
  • [^~!@#$%&*\s] - символ, отличный от символа в ~!@#$%&* список и пробелы
  • [^~!@#$%&*]* - 0+ символов, кроме символа в ~!@#$%&* список
  • $ конец строки.

ПРИМЕЧАНИЕ: чтобы также разрешить пустую строку, вам нужно обернуть шаблон между якорями в дополнительной группе: ^(?:[^~!@#$%&*]*[^~!@#$%&*\s][^~!@#$%&*]*)?$,

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