Wednesday, 18 April 2018

A comprehensive regex for phone number validation



I'm trying to put together a comprehensive regex to validate phone numbers. Ideally it would handle international formats, but it must handle US formats, including the following:





  • 1-234-567-8901

  • 1-234-567-8901 x1234

  • 1-234-567-8901 ext1234

  • 1 (234) 567-8901

  • 1.234.567.8901

  • 1/234/567/8901

  • 12345678901




I'll answer with my current attempt, but I'm hoping somebody has something better and/or more elegant.


Answer



Better option... just strip all non-digit characters on input (except 'x' and leading '+' signs), taking care because of the British tendency to write numbers in the non-standard form +44 (0) ... when asked to use the international prefix (in that specific case, you should discard the (0) entirely).



Then, you end up with values like:



 12345678901
12345678901x1234
345678901x1234

12344678901
12345678901
12345678901
12345678901
+4112345678
+441234567890


Then when you display, reformat to your hearts content. e.g.




  1 (234) 567-8901
1 (234) 567-8901 x1234

No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...