How to validate user input by using RegularExpressionValidator in ASP.NET

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.

FieldRequired?Allowed CharactersMinMax
EmailYesa-z, A-Z, 0-9, at-sign (@), period (.), hyphen (-), underscore (_)850
First NameYesa-z, A-Z, period (.), apostrophe (‘), hyphen (-), space ( ), ISO/IEC 8859-1 chars250
Last NameYesa-z, A-Z, period (.), apostrophe (‘), hyphen (-), space ( ), ISO/IEC 8859-1 chars250
Job TitleYesa-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars250
DepartmentYesa-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars250
OrganizationYesa-z, A-Z, period (.), apostrophe (‘), ampersand (&), parenthesis (()), slashes (/\), hyphen (-), space ( ), ISO/IEC 8859-1 chars250
PhoneYes0-9, period (.), space ( ), parenthesis (()), plus (+), hyphen (-), forward slash (/)220
FaxNo0-9, period (.), space ( ), parenthesis (()), plus (+), hyphen (-), forward slash (/)220
WebsiteNoa-z, A-Z, 0-9, http://, https://, period (.), hyphen (-), underscore (_)450

Validation Controls

ASP.NET code for input controls and validation controls are below. Please note that I used RequiredFieldValidator as well as RegularExpressionValidator.

 

Who Unfriended me on Facebook?
<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:

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>

Spread the word!

Leave a Reply

Your email address will not be published. Required fields are marked *