On 3/12/06, Curt Zirzow <czirzow@xxxxxxxxx> wrote: > On Sun, Mar 12, 2006 at 12:09:42PM -0700, Paul Goepfert wrote: > > Hi all, > > > > I am trying to validate phone numbers in a web form that I have > > created. I am using a regular expression to validate the phone > > number. It seems when I enter the phone number in the following ways > > I get errors > > > > (123) 456 7890 > > 123 456 7890 > > (123) 456 - 7890 > > 123 456-7890 > > Dont forget: > > 123.456.780 > 1-123-456-7890 > > > > > ... > > > > $validPhone = "^([0-9]{3}[ ]*)?[0-9]{3}[ ]*[0-9]{4}$"; > > > > By the way The phone numbers are in US format. > > With US phone numbers I always use this approach to avoid what > format people use to enter the phone: > > - Remove any non digit > $check_phone = preg_replace('/[^0-9]/', '', $phone); I just want to be sure about something. Is there a second quotation mark missing? I only count one and I added a space between the quotes. Paul > > > - If $check_phone strlen < 10.. invalid > - if $check_phone strlen == 11 && first char == '1'.. remove it > - if $check_phone strlen == 10, seems ok > - possible area code check with prefix check (if have db to > support that) > > I would even go as far as storing the phone striped of any > formating and only format it when you display it. > > The other option would to make three seperate input fields in the > form and join them together in your script: > > (<input name="phone[area]">) <input name="phone[code]">-<input name="phone[num]"> > > > Curt. > -- > cat .signature: No such file or directory > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php