in reply to Regular expression for Fax numbers

Have you tried Number::Phone::US?


True laziness is hard work

Replies are listed 'Best First'.
Re^2: Regular expression for Fax numbers
by DrHyde (Prior) on Feb 12, 2009 at 10:39 UTC

    That module is very buggy. It permits five digit numbers, which AFAIK no longer work anywhere in the US. It permits invalid numbers like 123-456-7890. And despite the name, it doesn't actually care whether a number is in the US or in, say, Jamaica. You should use my Number::Phone::NANP::US, which knows which numbers are valid or invalid in the numbering plan, as well as which numbers are assigned to the US and which to the various other countries.

    What my code *won't* do for you though is find a phone number in a block of text.

      The only way of ensuring that a telephone number is in the US vs Canada or one of the Caribbean nations using the North American phone system is to maintain a list of area codes for the US vs anywhere else. Given that new area codes are being added all the time, any code would require a method of updating the list. And while "123-456-7890" may be invalid today, it could be valid in the future.


      Information about American English usage here and here. Floating point issues? Please read this before posting. — emc

        Well, if you're going to keep a list of area codes, and reject numbers whose first three digits aren't on that list, why not maintain a list of exchange codes as well? I mean, if you're going to reject '123-456-7890' because '123' isn't a valid area code, shouldn't you also reject '212-555-7890', because '555' isn't a valid exchange code?

        Of course, keeping a list of exchanges per area, that still isn't the end. Not all exchanges connect 10000 numbers.