在我的ASP.net应用程序中,我在业务对象类文件中引用以下dll文件进行验证。
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
我正在验证像这样的属性
[StringLengthValidator(1, 50, MessageTemplateResourceName = "INVALID_NAME",
MessageTemplateResourceType = typeof(ValidatioinErrors))]
[RegexValidator("[A-Za-z]*", MessageTemplateResourceName = "INVALID_NAME",
MessageTemplateResourceType = typeof(ValidatioinErrors))]
public string Name
{
get { return name; }
set { name = value; }
}
现在我将Name的值传递为“test123”,当我使用像
这样的IsValid()函数检查此验证时public bool IsValid()
{
return Validation.Validate<myclassname>(this).IsValid;
}
当我在将name的值作为“test123”传递后检查此IsValid()函数时,它接受此给定的名称,而不是通过拒绝它来返回无效的名称。
我在哪里犯了错误?任何人都可以帮助我....答案 0 :(得分:0)
使用^[A-Za-z]*$
的正则表达式尝试。
添加的'^'和'$'表示该正则表达式应匹配整个字符串而不仅仅是其中的一部分。
asp.net regexvalidator不需要这些,但这是一个例外。常规正则表达式需要这些锚点才能匹配完整的输入,而且这个属性显然也是如此。