Проверка номера телефона Javascript - PullRequest
8 голосов
/ 01 июня 2011

Я хочу, чтобы пользователи разрешали только номера телефонов в следующем формате

xxx-xxx-xxxx или xxxxxxxxxx только все цифры. Может кто-нибудь предложить для этого регулярное выражение?

Ответы [ 5 ]

13 голосов
/ 01 июня 2011

Примерно так:

\d{3}-\d{3}-\d{4}|\d{10}
10 голосов
/ 01 июня 2011

Несмотря на то, что общая проверка телефонных номеров является более серьезной проблемой, чем то, что вы пытаетесь решить, я бы сделал следующее:

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

Опять же, это тривиальная проверка.Что-то более строгое, см. Этот Список допустимых кодов США .

См. Также Полное регулярное выражение для проверки номера телефона

2 голосов
/ 13 сентября 2012

Используйте это:

/ ^ (1 -?) (([2-9] \ d {2}) | [2-9] \ d {2}) -? [2-9] \ d {2} -? \ д {4} $ / * * 1005

1 голос
/ 02 июня 2011

Следующее регулярное выражение может использоваться для проверки определенных и действующих (по состоянию на 6/2011) кодов телефонных зон в США:

var area_code_RE=
 '(2(?:0[1-35-9]|1[02-9]|2[4589]|3[1469]|4[08]|5[1-46]|6[0279]|7[068]|8[13])'+
 '|3(?:0[1-57-9]|1[02-9]|2[0139]|3[014679]|47|5[12]|6[019]|8[056])'+
 '|4(?:0[126-9]|1[02-579]|2[3-5]|3[0245]|4[023]|6[49]|7[0589]|8[04])'+
 '|5(?:0[1-57-9]|1[0235-8]|[23]0|4[01]|5[179]|6[1-47]|7[01234]|8[056])'+
 '|6(?:0[1-35-9]|1[024-9]|2[0368]|3[016]|4[16]|5[01]|6[012]|7[89]|8[29])'+
 '|7(?:0[1-4678]|1[2-9]|2[047]|3[1247]|4[07]|5[47]|6[02359]|7[02-59]|8[156])'+
 '|8(?:0[1-8]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])'+
 '|9(?:0[1346-9]|1[02-9]|2[0578]|3[15679]|4[0179]|5[124679]|7[1-35689]|8[0459])'+
 ')';
1 голос
/ 01 июня 2011
var rx=/^\d{3}\-?\d{3}\-?\d{4}$/;
if(rx.test(string)){
//10 diget number with possible area and exhange hyphens
}
else //not
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...