Я хотел написать регулярное выражение, используя валидатор ASP.Net RegExp, который бы гарантировал, что поле содержит только числовые и десятичные значения и хотя бы один символ.
^[0-9]{1,40}(\.[0-9]{1,2})?$
По существу: [0-9]{1,40}
- означает от 1 до 40 числовых символов.
Валидатор регулярных выражений ASP.Net не запускается для пустого поля, где нет хотя бы одного символа.
Обходной путь: использование пользовательского валидатора с проверкой регулярных выражений в Javascript:
function validateMinTrans(sender, args) {
var error = true;
var txtMinTrans = document.getElementById('TxtMinTrans');
var regexp = new RegExp("^[0-9]{1,40}(\.[0-9]{1,2})?$");
if (txtMinTrans.value.match(regexp)) {
alert("good");
}
else {
alert("bad");
}
if (error)
args.IsValid = false;
else
args.IsValid = true;
}
Таким образом, мне даже не нужно проверять txtMinTrans.length == 0
.
Интересно, испытал ли это кто-нибудь еще?