有沒有一種方法可以使用RegularExpressionValidator僅在ValidationExpression不匹配時進行驗證?特別是使用PO BOX正則表達式來驗證地址是而不是一個PO BOX。ASP.NET RegularExpressionValidator,驗證不匹配?
謝謝!
有沒有一種方法可以使用RegularExpressionValidator僅在ValidationExpression不匹配時進行驗證?特別是使用PO BOX正則表達式來驗證地址是而不是一個PO BOX。ASP.NET RegularExpressionValidator,驗證不匹配?
謝謝!
創建一個正則表達式來驗證不是PO BOX或使用自定義驗證器。
只需使用NegativeRegularExpressionValidator :)
[ToolboxData("<{0}:NegativeRegularExpressionValidator runat=\"server\" ErrorMessage=\"NegativeRegularExpressionValidator\"></{0}:NegativeRegularExpressionValidator>")]
public class NegativeRegularExpressionValidator : RegularExpressionValidator
{
protected override bool EvaluateIsValid()
{
return base.EvaluateIsValid() == false;
}
}
邁克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>
我同意,這將是理想的。但是顛倒一個現有的正則表達式不是微不足道的? – ccook 2009-02-14 19:34:22
這取決於正則表達式本身,但據我所知,在整個表達式中沒有魔術「不」切換。 – 2009-02-14 19:40:04