Here is an easy way to check user inputs in ASP.NET: RegularExpressionValidator control. You can compare the input with the regular expression you provide and show users corresponding validation errors.
Validation Rules
In this example, my validation rules are below.
Field | Required? | Allowed Characters | Min | Max |
Yes | a-z, A-Z, 0-9, at-sign (@), period (.), hyphen (-), underscore (_) | 8 | 50 | |
First Name | Yes | a-z, A-Z, period (.), apostrophe (‘), hyphen (-), space ( ), ISO/IEC 8859-1 chars | 2 | 50 |
Last Name | Yes | a-z, A-Z, period (.), apostrophe (‘), hyphen (-), space ( ), ISO/IEC 8859-1 chars | 2 | 50 |
Job Title | Yes | a-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars | 2 | 50 |
Department | Yes | a-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars | 2 | 50 |
Organization | Yes | a-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars | 2 | 50 |
Phone | Yes | 0-9, period (.), space ( ), parenthesis (()), plus (+), hyphen (-), forward slash (/) | 2 | 20 |
Fax | No | 0-9, period (.), space ( ), parenthesis (()), plus (+), hyphen (-), forward slash (/) | 2 | 20 |
Website | No | a-z, A-Z, 0-9, http://, https://, period (.), hyphen (-), underscore (_) | 4 | 50 |
Validation Controls
ASP.NET code for input controls and validation controls are below. Please note that I used RequiredFieldValidator as well as RegularExpressionValidator.
<asp:ValidationSummary ID="smryUpdate" EnableClientScript="true" ShowSummary="true" ValidationGroup="smryUpdate" HeaderText="Please correct the following errors:" DisplayMode="BulletList" runat="server" > <telerik:RadTextBox ID="txtEmail" runat="server" Font-Size="Medium" Width="320px"></telerik:RadTextBox> <asp:RequiredFieldValidator CssClass="ValidationMessage" ID="requiredEmail" SetFocusOnError="true" Display="Dynamic" runat="server" Text="Email is required" ErrorMessage="Email is required" ControlToValidate="txtEmail"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator CssClass="ValidationMessage" ID="regexEmail" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z0-9]+[\w-]+\.)+[a-zA-Z]{1}[a-zA-Z0-9-]{1,23})$" ControlToValidate="txtEmail" ErrorMessage="Invalid email format"></asp:RegularExpressionValidator> <asp:CustomValidator CssClass="ValidationMessage" ID="customValidatorEmail" ControlToValidate="txtEmail" ValidationGroup="smryUpdate" ClientValidationFunction="ClientValidate" Display="Dynamic" ErrorMessage="Please do not use an address from a public email provider (Gmail, Yahoo, Hotmail etc.)" runat="server" /> <telerik:RadTextBox ID="txtFirstName" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredFirstName" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="First name is required" ErrorMessage="First name is required" ControlToValidate="txtFirstName" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexFirstName" CssClass="ValidationMessage" SetFocusOnError="true" runat="server" Display="Dynamic" ValidationExpression="^[a-zA-Z'\s.\u00c0-\u017e-]{2,50}$" ControlToValidate="txtFirstName" ErrorMessage="Invalid name format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtLastName" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredLastName" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="Last name is required" ErrorMessage="Last name is required" ControlToValidate="txtLastName" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexLastName" CssClass="ValidationMessage" SetFocusOnError="true" runat="server" Display="Dynamic" ValidationExpression="^[a-zA-Z'\s.\u00c0-\u017e-]{2,50}$" ControlToValidate="txtLastName" ErrorMessage="Invalid name format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtJobTitle" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredJobTitle" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="Job title is required" ErrorMessage="Job title is required" ControlToValidate="txtJobTitle" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexJobTitle" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^[a-zA-Z'\s.&/\\()\u00c0-\u017e-]{2,50}$" ControlToValidate="txtJobTitle" ErrorMessage="Invalid job title format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtDepartment" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredDept" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="Department is required" ErrorMessage="Department is required" ControlToValidate="txtDepartment" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexDept" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^[a-zA-Z'\s.&/\\()\u00c0-\u017e-]{2,50}$" ControlToValidate="txtDepartment" ErrorMessage="Invalid department format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtOrganization" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredOrganization" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="Organization is required" ErrorMessage="Organization is required" ControlToValidate="txtOrganization" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexOrganization" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^[a-zA-Z'\s.&/\\()\u00c0-\u017e-]{2,50}$" ControlToValidate="txtOrganization" ErrorMessage="Invalid organization format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtPhone" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="requiredPhone" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" Text="Phone is required" ErrorMessage="Phone is required" ControlToValidate="txtPhone" runat="server"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexPhone" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^[0-9.()\-+/\s]{2,20}$" ControlToValidate="txtPhone" ErrorMessage="Invalid phone format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtFax" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" CssClass="ValidationMessage" runat="server" Display="Dynamic" ControlToValidate="RadTextBox5" ErrorMessage="The textbox cannot be empty" EnableClientScript="true"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexFax" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^[0-9.()\+/\s-]{2,20}$" ControlToValidate="txtFax" ErrorMessage="Invalid fax number format"></asp:RegularExpressionValidator> <telerik:RadTextBox ID="txtWebsite" runat="server" Font-Size="Medium" Width="200px"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" CssClass="ValidationMessage" runat="server" Display="Dynamic" ControlToValidate="RadTextBox7" ErrorMessage="The textbox cannot be empty" EnableClientScript="true"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="regexWebsite" CssClass="ValidationMessage" SetFocusOnError="true" Display="Dynamic" runat="server" ValidationExpression="^(https?:\/\/[a-zA-Z0-9\-_\.]{1,32}\.[a-zA-Z0-9\-_]{2,9}[a-zA-Z0-9\-_./]{0,30}|[a-zA-Z0-9\-_.]{1,40}\.[a-zA-Z0-9\-_]{2,9}[a-zA-Z0-9\-_./]{0,30})$" ControlToValidate="txtWebsite" ErrorMessage="Invalid website format"></asp:RegularExpressionValidator> <Button runat="server" ID="btnSubmit" Text="Update" ValidationGroup="smryUpdate" Width="100px" OnClick="btnSubmit_Click" >
Useful Sources:
- https://msdn.microsoft.com/en-us/library/ff650303.aspx
- http://www.regular-expressions.info
- http://www.regexlib.com
- Regex test: http://www.regexpal.com
- Regex test: http://www.regexr.com
Note:
If validation doesn’t work on client-side, try adding these lines into web.config:
<configuration> <appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> </appSettings> </configuration>