Regex for Credit Card Number Format
This is a format-only pattern for card-like numbers. It is appropriate for client-side input cleanup, but real validation still needs Luhn checks and payment processor rules.
The expression
/^(?:\d[ -]*?){13,19}$/How to read it
Anchor: the match must start at the beginning of the string.
Anchor: the match must run to the end of the string.
\d matches a single digit, 0 through 9.
A brace quantifier fixes how many times the previous token repeats.
(?: … ) groups without capturing, so it costs nothing to read back.
Validate your own text, line by line
no inputThis expression is anchored, so it asks whether a whole string is valid. Each line above is tested on its own — it will not find a match inside a longer sentence.
Examples, checked in your browser
4/4 verified4242 4242 4242 4242
Matches.
5555-5555-5555-4444
Matches.
1234
No match — this is the kind of input the pattern rejects.
card-4242
No match — this is the kind of input the pattern rejects.
Use it in code
3 languagesconst regex = /^(?:\d[ -]*?){13,19}$/g;
regex.test(input);import re
pattern = re.compile(r"^(?:\d[ -]*?){13,19}$")
bool(pattern.search(input))re := regexp.MustCompile("^(?:\\d[ -]*?){13,19}$")
matched := re.MatchString(input)Other validation patterns
6Valid Email Address
/^[^\s@]+@[^\s@]+\.[^\s@]+$/i
URL Slug
/^[a-z0-9]+(?:-[a-z0-9]+)*$/
Strong Password
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z\d]).{12,}$/
UUID v4
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
IPv4 Address
/^(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|1?\d?\d)){3}$/
Hex Color
/^#?(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/