Разве этот валидатор регулярных выражений не должен убедиться, что пользователь вводит что-то в текстовое поле? По какой-то причине пустое текстовое поле проходит через.
<asp:RegularExpressionValidator ID="revNumericValidator" runat="server" ValidationExpression="^\d+$" ControlToValidate="tb1" ErrorMessage="Please enter blah (must be a number)." />
Валидаторы по соглашению не проверяют пустой текст. Если вы хотите указать значение, вы должны также добавить RequiredFieldValidator .
MSDN говорит
Проверка успешна, если элемент управления вводом пуст. Если для связанного элемента управления вводится значение, используйте элемент управления RequiredFieldValidator в дополнение к элементу управления RegularExpressionValidator .
Я не уверен, почему это так, но с элементами управления валидатора ASP.NET мне всегда приходилось комбинировать валидатор RegEx с валидатором поля Required, так как RegEx, похоже, срабатывает только при наличии текста, включенного в поле.