Regex Pal

Dan's Tools

strict phone number regex w/ext, 2 part validation

used with .val().length(), 1st group -> when .length() === 3 add a space (/s), .length() =7 add a dash(/-), when .length() === 12 VALIDATE -> (regular 11 digit phone number ex: (555/s555/-5555) part 2: msg is placed with .html('Hit space to add an extension.') (/sext.555555) adds "ext." and enters invalid state until a number or uppercase/lowercase letter is added, will accept 1-6 alphanumeric characters, more will return false. validates: 555 555-5555 555 555-5555 ext.5 555 555-5555 ext.555555 555 555-5555 ext.15-Foo 555 555-5555 ext.FOObar 555 555-5555 ext.foobar 555 555-5555 ext.CBlock-A125x Not allowed: !@#$%^&*()_+={}[]:";?/.,~`\| 555 5555555 555 5555 555-5555 555-555-5555 555 555-5555-ext.420 555 555-5555 ext. 420

Comments

Top Regular Expressions

Cheat Sheet

Character classes
. any character except newline
\w \d \s word, digit, whitespace
\W \D \S not word, digit, whitespace
[abc] any of a, b, or c
[^abc] not a, b, or c
[a-g] character between a & g
Anchors
^abc$ start / end of the string
\b word boundary
Escaped characters
\. \* \\ escaped special characters
\t \n \r tab, linefeed, carriage return
\u00A9 unicode escaped ©
Groups & Lookaround
(abc) capture group
\1 backreference to group #1
(?:abc) non-capturing group
(?=abc) positive lookahead
(?!abc) negative lookahead
Quantifiers & Alternation
a* a+ a? 0 or more, 1 or more, 0 or 1
a{5} a{2,} exactly five, two or more
a{1,3} between one & three
a+? a{2,}? match as few as possible
ab|cd match ab or cd