ASP.NET RegularExpressionValidator - Validate U.S. Social Security Number

RegularExpressionValidator to validate US Social Security Number
The RegularExpressionValidator control validates whether the value of an associated input control matches the pattern specified by a regular expression.

The following asp.net c# tutorial code demonstrates how we can validate a US Social Security Number. We used a RegularExpressionValidator control and a RequiredFiledValidator control to validate a specified United States Social Security Number.

A RegularExpressionValidator control checks whether the value of an input control (as an example a TextBox) matches a pattern defined by a regular expression. The regular expression validation allows the asp.net c# developers to check for predictable sequences of characters, such as those in Zip Codes, telephone numbers, and emails.

But there is an issue while validating using RegularExpressionValidator control. If the specified input control is left empty the regular expression validation will succeed. So, when a value is required for the associated input control (as an example TextBox), the asp.net c# developers have to use a RequiredFieldValidator in addition to the RegularExpressionValidator.

The ValidationExpression is an important property in RegularExpressionValidator control. The ValidationExpression property allows the asp.net developers to get or set the regular expression that determines the pattern used to validate an input field (as an example a TextBox).

The ValidationExpression property value is a String. This String specifies the regular expression used to validate an input field for format. The default value of the ValidationExpression property is Empty. The ValidationExpression property throws HttpException if the regular expression is not properly formed.

So finally, the asp.net c# developers can use a RegularExpressionValidator control to validate a US Social Security Number. To validate that, The developers just have to pass the specified regular expression to the ValidationExpression property of RegularExpressionValidator control. They also have to associate a RequiredFieldValidator control to make the input control required.
ValidateUSSocialSecurityNumber.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html>

<script runat="server">
    protected void Page_Load(object sender, System.EventArgs e)
    { 
        if(!this.IsPostBack)
        {
            Label1.Font.Bold = true;
            Label1.Font.Italic = true;
            Label1.Font.Size = FontUnit.Large;
            Label1.ForeColor = System.Drawing.Color.Crimson;
            TextBox1.BackColor = System.Drawing.Color.SlateBlue;
            TextBox1.ForeColor = System.Drawing.Color.AliceBlue;
            Button1.Font.Bold = true;
            Button1.ForeColor = System.Drawing.Color.SlateBlue;
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Your Social Security Number: " + TextBox1.Text.ToString();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>asp.net RegularExpressionValidator: how to validate U.S. Social Security Number</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:Navy">RegularExpressionValidator<br /><i>U.S. Social Security Number</i></h2>
        <asp:Label 
             ID="Label1" 
             runat="server"
             >
        </asp:Label>
        <br /><br />
        <asp:Label 
             ID="Label2" 
             runat="server" 
             Text="U.S. Social Security Number"
             Font-Bold="true"
             ForeColor="SlateBlue"
             >
        </asp:Label>
        <asp:TextBox 
             ID="TextBox1" 
             runat="server"
             >
        </asp:TextBox>
        <asp:RequiredFieldValidator 
             ID="RequiredFieldValidator1"
             runat="server"
             ControlToValidate="TextBox1"
             Text="*"
             >
        </asp:RequiredFieldValidator>
        <asp:RegularExpressionValidator 
            ID="RegularExpressionValidator1"
            runat="server" 
            ValidationExpression="\d{3}-\d{2}-\d{4}"
            ControlToValidate="TextBox1"
            ErrorMessage="Input valid U.S. Social Security Number!"
            ></asp:RegularExpressionValidator>
        <br /><br />
        <asp:Button 
             ID="Button1" 
             runat="server" 
             Text="Submit U.S. Social Security Number"
             OnClick="Button1_Click"
             />
    </div>
    </form>
</body>
</html>