Just to be clear, I am really not, ever, trying to handle every possible odd exception condition that might come up. If what I craft gets 99.5% of all commonly used formats, I'm fine. If someone makes a typo like leaving no space between the closing parenthesis of an area code and the exchange, or were to skip a hyphen between the area code and the exchange, I'm more than happy to have that read badly, as it should clue in the listener that something's off about the formatting.
I've had to write hellishly complicated regexes in the past that needed to handle a multitude of normal and exception conditions, and they exhaust me when they get to that extent, particularly when "that extent" is really unlikely to be necessary.
But George should have his solution at this point, that's for sure!
Brian - Windows 10 Pro, 64-Bit, Version 2004, Build 19041
It’s hard waking up and realizing it’s not always black and white.
~ Kelley Boorn