有没有办法使用RegularExpressionValidator仅在ValidationExpression不匹配时进行验证?特别是使用PO BOX正则表达式来验证 NOT PO BOX的地址。
谢谢!
答案 0 :(得分:3)
只需使用NegativeRegularExpressionValidator:)
[ToolboxData("<{0}:NegativeRegularExpressionValidator runat=\"server\" ErrorMessage=\"NegativeRegularExpressionValidator\"></{0}:NegativeRegularExpressionValidator>")]
public class NegativeRegularExpressionValidator : RegularExpressionValidator
{
protected override bool EvaluateIsValid()
{
return base.EvaluateIsValid() == false;
}
}
答案 1 :(得分:3)
答案 2 :(得分:1)
创建一个正则表达式,用于验证非PO BOX或使用自定义验证器。
答案 3 :(得分:1)
Mike Chaliy的解决方案非常好,但它不会在客户端验证。
我认为你应该使用custom validator control并编写一个javascript函数来验证不是POBox。从正则表达式验证器复制模式,并使用this site编写自己的客户端验证。
答案 4 :(得分:0)
客户端脚本的另一种解决方案:
<asp:TextBox runat="server" ID="MYiD" />
<asp:CustomValidator runat="server" ControlToValidate="MyId" ErrorMessage="Wrong"
ClientValidationFunction="ClientValidate" />
<asp:Button runat="server" OnClick="OnClick" />
<script language="javascript">
function ClientValidate(source, arguments)
{
var value = arguments.Value;
var res = value.match('abc');
arguments.IsValid = (res == null || res === undefined);
}
</script>