我想使用ASP.Net RegExp验证器编写正则表达式,以确保字段仅包含数字和小数值,并且至少包含一个字符。
^[0-9]{1,40}(\.[0-9]{1,2})?$
基本上:[0-9]{1,40}
- 表示至少一到40个数字字符。
ASP.Net regexp验证器不会为空字段触发 - 其中至少有一个字符。
解决方法:在Javascript中使用自定义验证器和regexp检查:
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
。
想知道是否有其他人经历过此事。
答案 0 :(得分:1)
ASP.NET验证程序通常不会为空字段触发;如果要检查,则需要添加RequiredFieldValidator。在同一个字段上有两个验证器没有问题。
这允许您拥有可选字段:仅使用RegularExpressionValidator意味着“为空或与此正则表达式匹配”。
答案 1 :(得分:0)
除非字段有值,否则Regex验证器确实不会运行。但是,您也可以将RequiredFieldValidator指向同一个TextBox控件,这样两者都将处理它们自己的责任 - 空和模式。