Чтобы быть более точным, вам нужно установить для свойства ValidateEmptyMessage CustomValdiator значение true, иначе он не будет проверять пустые поля ввода. Пример:
<script type="text/javascript">
function clientValidate(sender, args){
if (args.Value.length == 0) {
args.IsValid = false;
}
}
</script>
<asp:CustomValidator runat="server"
ID="CustomValidator"
ControlToValidate="TextBox1"
ClientValidationFunction="clientValidate"
ValidateEmptyText="true"
Text="Error!">
</asp:CustomValidator>
Но, как вы можете видеть, это ни в коем случае не короче, чем ваш прежний код, поэтому, если мне решать, нет смысла использовать собственный валидатор в этом самом случае. Что касается исходного вопроса, к сожалению, нет способа заставить RegExpressValidator по умолчанию проверять пустые поля ввода.