簡體   English   中英

如何在ASP.Net頁面后面的代碼中將Regex添加到ValidationExpression?

[英]How to add Regex to ValidationExpression in code behind of ASP.Net page?

我的頁面中有一個RegularExpressionValidator控件,代碼中有一個全局公共正則表達式變量,其后有正確的ValidationExpression和Option及TimeSpan。 貝婁是我的代碼背后的代碼:

public partial class Index : System.Web.UI.Page
{
    public Regex regex;
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();


        if (!IsPostBack)
        {
            regex = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", RegexOptions.Singleline, TimeSpan.FromSeconds(5));
        }

    }
}

我想將其添加到我的頁面控件中。 它確定它,但驗證總是顯示錯誤,並且即使我輸入正確的格式也不起作用。 我試圖打字。 第一個沒有錯誤,但有錯誤的反應。 第二個頁面錯誤導致頁面無法加載。

WebPage中的第一種類型代碼如下:

<asp:RegularExpressionValidator ID="REV" runat="server" Text="Incorrect Format" ForeColor="Red" ControlToValidate="txt1" ValidationExpression="<%# regex %>" Display="Dynamic" />

WebPage中的第二種類型代碼如下:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="Incorrect Format" ForeColor="Red" ControlToValidate="txt1" ValidationExpression="<%# regex.Match(txt1.Text) %>" Display="Dynamic" />

我怎么解決這個問題。 非常感謝大家:)

幸運的是,我錯過了一件事,經過大約18個小時的思考,我突然發現了問題的解決方案。

問題是我們沒有像win應用程序庫C#中那樣有常規的全局變量(例如winform&wpf&...),而且每次我調用regex時都為null。 但是如果我們要全局的話就必須有類變量,所以我做了一個靜態校准,給它一個靜態變量regex(因為我不想每次都被迫創建新的實例&...)並且代碼可以正常工作精細。 讓我與大家分享我的代碼。

以下是我必須走的真正方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Index : System.Web.UI.Page
{
    public static class RGX
    {
        public static Regex regex = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", RegexOptions.Singleline, TimeSpan.FromSeconds(5));
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();
    }
}

我在頁面代碼中使用了控件,如下所示

<asp:RegularExpressionValidator ID="REV" runat="server" Text="Wrong Format" ControlToValidate="txt1"  Display="Dynamic" ValidationExpression="<%# RGX.regex %>"></asp:RegularExpressionValidator>

我希望有人能幫助我,但沒人能幫助我,最后我花了大約18個小時的時間找到了解決方案。 那花了我很多錢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM