Regex for US Social Security Number
Regex Pattern
^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$US SSN format (XXX-XX-XXXX) with basic validity checks
Quick Answer
The regex pattern for us social security number is `^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$`. US SSN format (XXX-XX-XXXX) with basic validity checks. This works in JavaScript, Python, Ruby, PHP, Java, and most regex engines that support PCRE syntax.
Test Examples
| Input | Result |
|---|---|
| 123-45-6789 | ✓ Matches |
| 001-01-0001 | ✓ Matches |
| 768-12-1234 | ✓ Matches |
| 000-12-3456 | ✗ No match |
| 666-12-3456 | ✗ No match |
| 123-00-6789 | ✗ No match |
| 123-45-0000 | ✗ No match |
Code Examples
javascript
const regex = /^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/;
const isValid = regex.test(value);python
import re
pattern = r'^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$'
if re.match(pattern, value):
print("valid")ruby
pattern = /^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/
if value =~ pattern
puts "valid"
endphp
if (preg_match('/^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/', $value)) {
echo "valid";
}java
String pattern = "^(?!000|666|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0000)\\d{4}$";
boolean isValid = value.matches(pattern);Frequently Asked Questions
Related Regex Patterns
UUID v4
UUID version 4 (randomly generated)
UUID (Any Version)
Any RFC 4122 UUID (versions 1-5)
JWT Token
JSON Web Token (header.payload.signature)
Hex String
Any-length hexadecimal string
Base64 String
Standard base64 encoded string
Alphanumeric Username
Username with letters, digits, underscores (3-16 chars)