范围验证器用于字符串、整数和日期。有人可以给我它们的最小值和最大值吗?
2 回答
最小和最大长度是 int 和 double 类型的 euqal 长度...
范围验证器控件是一个验证器控件,用于检查控件值是否在有效范围内。此控件所需的属性是:MaximumValue、MinimumValue 和 Type。
如果 MaximumValue 或 MinimumValue 属性指定的值无法转换为 Type 属性指定的数据类型,RangeValidator 控件将引发异常。
RangeValidator 不是一个很好的验证器来验证字符串的长度。你最好使用 RegularExpressionValidator 来验证它。
http://forums.asp.net/t/1046041.aspx/1?how+to+use+RangeValidator+for+String+type+
使用该MaximumValue
属性指定验证范围的最大值。如果此属性指定的值无法转换为该属性指定的数据类型BaseCompareValidator.Type
,则会引发异常。
因此,例如,如果您将 设置为 ,Type
如果Integer
值大于 ,则会引发异常Int32.MaxValue
。
如果是字符串,什么是最小值和最大值?
这是 javascript RangeValidator 函数:
function RangeValidatorEvaluateIsValid(val) {
var value = ValidatorGetValue(val.controltovalidate);
if (ValidatorTrim(value).length == 0)
return true;
return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
}
正如您将看到的,它比较字符串的ACSII 代码。'0' 到 '9' 的 ASCII 值是 48 到 57,'a' 到 'z' 的 ASCII 值是 97 到 122 ,'A' 到 'Z' 的 ASCII 值是 65 到 90。所以MinimumValue
和MaximumValue
是验证器有效的这些 ASCII 代码的下限和上限。
function ValidatorCompare(operand1, operand2, operator, val) {
var dataType = val.type;
var op1, op2;
if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
return false;
if (operator == "DataTypeCheck")
return true;
if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
return true;
switch (operator) {
case "NotEqual":
return (op1 != op2);
case "GreaterThan":
return (op1 > op2);
case "GreaterThanEqual":
return (op1 >= op2);
case "LessThan":
return (op1 < op2);
case "LessThanEqual":
return (op1 <= op2);
default:
return (op1 == op2);
}
}
http://forums.asp.net/t/1046041.aspx/1?how+to+use+RangeValidator+for+String+type+
RequiredFieldValidator
请注意,如果要验证空文本,则需要额外的。