共用方式為


HOW TO:比對模式驗證 ASP.NET 伺服器控制項

更新:2007 年 11 月

您可以檢查使用者的輸入是否符合預先定義的樣式,例如電話號碼、郵遞區號、電子郵件地址等。若要執行這種驗證,可使用規則運算式。如需規則運算式的詳細資訊,請參閱 .NET Framework 規則運算式

安全性注意事項:

根據預設,ASP.NET Web 網頁會自動進行驗證,檢查惡意的使用者是否正試圖將指令碼或 HTML 項目傳送到您的應用程式。如需詳細資訊,請參閱指令碼攻擊概觀

若要比對規則運算式驗證

  1. RegularExpressionValidator 控制項加入至網頁,並設定下列屬性:

    屬性

    說明

    ControlToValidate

    要驗證控制項的 ID。

    ErrorMessage, Text, Display

    指定驗證失敗時顯示一或多個錯誤的文字和位置的屬性。如需詳細資訊,請參閱 HOW TO:控制 ASP.NET 伺服器控制項的驗證錯誤訊息顯示

  2. ValidationExpression 屬性設定為規則運算式,以便設定要比較的模式。

    注意事項:

    如果您使用的是諸如 Visual Studio .NET 2005 的視覺化設計工具 (Visual Designer),便可以從 RegularExpressionValidator 控制項中所定義之預先定義的模式進行選取。

    如果您要允許多個有效的樣式,可使用條狀字元 (|) 來分隔運算式。

    注意事項:

    在用戶端驗證中,是使用 ECMAScript (JavaScript) 評估規則運算式。這和伺服器端的規則運算式檢查有些微的不同。

  3. 在 ASP.NET Web 網頁程式碼中加入一個檢查有效性的測試。如需詳細資訊,請參閱 HOW TO:以程式的方式測試 ASP.NET 伺服器控制項的有效性

    下列程式碼範例會顯示如何使用 RegularExpressionValidator 控制項,檢查使用者是否已輸入有效的美國郵遞區號。驗證程式會檢查兩個樣式:一是五個數字,另一為五個數字、破折號和另外四個數字。

    ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox>
         <asp:RegularExpressionValidator 
           id="txtZIP_validation" runat="SERVER" 
           ControlToValidate="txtZIP" 
           ErrorMessage="Enter a valid US ZIP code."
           ValidationExpression="\d{5}(-\d{4})?">
         </asp:RegularExpressionValidator>
    
    ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox>
         <asp:RegularExpressionValidator 
           id="txtZIP_validation" runat="SERVER" 
           ControlToValidate="txtZIP" 
           ErrorMessage="Enter a valid US ZIP code."
           ValidationExpression="\d{5}(-\d{4})?">
         </asp:RegularExpressionValidator>
    

請參閱

概念

ASP.NET 伺服器控制項的驗證類型

其他資源

驗證 ASP.NET 控制項