HOW TO:比對模式驗證 ASP.NET 伺服器控制項
更新:2007 年 11 月
您可以檢查使用者的輸入是否符合預先定義的樣式,例如電話號碼、郵遞區號、電子郵件地址等。若要執行這種驗證,可使用規則運算式。如需規則運算式的詳細資訊,請參閱 .NET Framework 規則運算式。
安全性注意事項: |
---|
根據預設,ASP.NET Web 網頁會自動進行驗證,檢查惡意的使用者是否正試圖將指令碼或 HTML 項目傳送到您的應用程式。如需詳細資訊,請參閱指令碼攻擊概觀。 |
若要比對規則運算式驗證
將 RegularExpressionValidator 控制項加入至網頁,並設定下列屬性:
屬性
說明
要驗證控制項的 ID。
指定驗證失敗時顯示一或多個錯誤的文字和位置的屬性。如需詳細資訊,請參閱 HOW TO:控制 ASP.NET 伺服器控制項的驗證錯誤訊息顯示。
將 ValidationExpression 屬性設定為規則運算式,以便設定要比較的模式。
注意事項: 如果您使用的是諸如 Visual Studio .NET 2005 的視覺化設計工具 (Visual Designer),便可以從 RegularExpressionValidator 控制項中所定義之預先定義的模式進行選取。
如果您要允許多個有效的樣式,可使用條狀字元 (|) 來分隔運算式。
注意事項: 在用戶端驗證中,是使用 ECMAScript (JavaScript) 評估規則運算式。這和伺服器端的規則運算式檢查有些微的不同。
在 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>