我有 2 個 ASP.NET 正則運算式驗證器:
^\s*[- .'\w] @\w (?:[-.]\w )*\.(?!co\s*$)\w{2,}\s*$檢查電子郵件地址是否有效@(adres.pl|vp.pl)檢查值是否包含這些字串中的任何一個
現在的問題是:不應允許上面第 2 條中的字串,因此不應允許電子郵件地址“[email protected]”。
但是,驗證器只是肯定的,這意味著它們會檢查它們是否包含該結構。因此,當有人當前輸入“[email protected]”時,我得到“無效值”
我的代碼如下:
<asp:TextBox ID="tbEmail" runat="server" />
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="emailinvalid" ValidationExpression="^\s*[- .'\w] @\w (?:[-.]\w )*\.(?!co\s*$)\w{2,}\s*$" ID="rev1" runat="server"/>
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="not allowed" ValidationExpression="@(adres.pl|vp.pl)" ID="rev2" runat="server"/>
我最初想組合運算式 1 和 2,但后來我不知道哪個失敗了,也不知道要顯示哪個錯誤。
我期望的是:
- “35435gd”-> 電子郵件無效
- “[email protected]”-> 不允許
- “[email protected]” -> 所有驗證器都正常
或者也許驗證器rev2應該只在rev1不拋出錯誤的情況下執行,所以“堆疊”是因為缺少更好的術語,a: 看起來很麻煩,b: 我不知道該怎么做。
我該如何解決這個問題?
更新 1
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="invalid" ValidationExpression="^\s*[- .'\w] @(?!(?:adres|vp)\.pl\b)\w (?:[-.]\w )*\.(?!co\s*$)\w{2,}\s*$" ID="RegularExpressionValidator5" runat="server"/>
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="not allowed" ValidationExpression="@(?!(?:adres|vp)\.pl\b)" ID="RegularExpressionValidator4" runat="server"/>
“gddg”導致“不允許”,而我希望“無效”。
當我切換這些驗證器的順序時,會顯示“無效”和“不允許”兩個錯誤。
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="invalid" ValidationExpression="^\s*[- .'\w] @(?!(?:adres|vp)\.pl\b)\w (?:[-.]\w )*\.(?!co\s*$)\w{2,}\s*$" ID="RegularExpressionValidator5" runat="server"/>
<asp:RegularExpressionValidator ControlToValidate="tbEmail" ErrorMessage="not allowed" ValidationExpression="@(?!(?:adres|vp)\.pl\b)" ID="RegularExpressionValidator4" runat="server"/>
uj5u.com熱心網友回復:
您可以使用單個模式,并且可以將現有模式撰寫為:
^\s*[- .'\w] @(?!(?:adres|vp)\.pl\b)\w (?:[-.]\w )*\.(?!co\s*$)\w{2,}\s*$
adres.pl不包括或的部分vp.pl可以寫成@(?!(?:adres|vp)\.pl\b)在 @ 之后直接排除那些匹配項。
如果這是電子郵件地址的最后一部分,您也可以使用@(?!(?:adres|vp)\.pl\s*$),就像您目前對這部分所做的一樣\.(?!co\s*$)
查看正則運算式演示。
請注意,您的模式將允許電子郵件地址的前導和尾隨空格字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/462071.html
上一篇:檢查JSON檔案中的鍵值
