【发布时间】:2015-10-15 17:59:44
【问题描述】:
有没有办法只在 ValidationExpression 不匹配时才使用 RegularExpressionValidator 进行验证?特别是使用邮政信箱正则表达式来验证不是邮政信箱的地址。
谢谢!
【问题讨论】:
有没有办法只在 ValidationExpression 不匹配时才使用 RegularExpressionValidator 进行验证?特别是使用邮政信箱正则表达式来验证不是邮政信箱的地址。
谢谢!
【问题讨论】:
【讨论】:
只需使用 NegativeRegularExpressionValidator :)
[ToolboxData("<{0}:NegativeRegularExpressionValidator runat=\"server\" ErrorMessage=\"NegativeRegularExpressionValidator\"></{0}:NegativeRegularExpressionValidator>")]
public class NegativeRegularExpressionValidator : RegularExpressionValidator
{
protected override bool EvaluateIsValid()
{
return base.EvaluateIsValid() == false;
}
}
【讨论】:
创建一个验证不是 PO BOX 的正则表达式或使用自定义验证器。
【讨论】:
Mike Chaliy 的解决方案非常好,但在客户端无法验证。
我认为您应该使用custom validator control 并编写一个验证不是 POBox 的 javascript 函数。从正则表达式验证器复制模式并使用this site 编写您自己的客户端验证。
【讨论】:
客户端脚本的另一种解决方案:
<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>
【讨论】: