Java Regular Expression to Validate Social Security Number (SSN)
Here is a utility method to check if a given String is a valid Social Security number using Java Regular Expression.
/** isSSNValid: Validate Social Security number (SSN) using Java regex. * This method checks if the input string is a valid SSN. * @param email String. Social Security number to validate * @return boolean: true if social security number is valid, false otherwise. */ public static boolean isSSNValid(String ssn){ boolean isValid = false; /*SSN format xxx-xx-xxxx, xxxxxxxxx, xxx-xxxxxx; xxxxx-xxxx: ^\\d{3}: Starts with three numeric digits. [- ]?: Followed by an optional "-" \\d{2}: Two numeric digits after the optional "-" [- ]?: May contain an optional second "-" character. \\d{4}: ends with four numeric digits. Examples: 879-89-8989; 869878789 etc. */ //Initialize regex for SSN. String expression = "^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$"; CharSequence inputStr = ssn; Pattern pattern = Pattern.compile(expression); Matcher matcher = pattern.matcher(inputStr); if(matcher.matches()){ isValid = true; } return isValid; }
This method will return true if the given String matches one of these SSN formats xxx-xx-xxxx, xxxxxxxxx, xxx-xxxxxx, xxxxx-xxxx:
Social Security RegEx Explained:
A String would be considered a valid Social Security Number (SSN) if it satisfies the following conditions:
^\\d{3}: Starts with three numeric digits.
[- ]?: Followed by an optional “-“
\\d{2}: Two numeric digits after the optional “-“
[- ]?: May contain an optional second “-” character.
\\d{4}: ends with four numeric digits.