Несмотря на то, что общая проверка телефонных номеров является более серьезной проблемой, чем то, что вы пытаетесь решить, я бы сделал следующее:
var targ=phone_number_to_validate.replace(/[^\d]/g,''); // remove all non-digits
if(targ && targ.length===10) {
// targ is a valid phone number
}
Выполнение этого способа проверит все следующие формы:
xxxxxxxxxx
xxx-xxx-xxxx
(xxx) xxx-xxxx
etc.
Кроме того, чтобы тривиально проверить действительный код города США, вы можете использовать:
if(targ.matches(/^[2-9]\d{2}/)) // targ is a valid area code
Опять же, это тривиальная проверка.Что-то более строгое, см. Этот Список допустимых кодов США .
См. Также Полное регулярное выражение для проверки номера телефона