Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
电话号码验证Javascript_Javascript_Regex_Validation_String - Fatal编程技术网

电话号码验证Javascript

电话号码验证Javascript,javascript,regex,validation,string,Javascript,Regex,Validation,String,我希望用户只允许以下格式的电话号码 xxx xxx xxxx或XXXXXXXXX仅限所有数字。有人能推荐一个正则表达式来实现这一点吗?类似这样的东西: \d{3}-\d{3}-\d{4}|\d{10} 虽然一般电话号码验证是一个比您试图解决的问题更大的问题,但我将执行以下操作: var targ=phone_number_to_validate.replace(/[^\d]/g,''); // remove all non-digits if(targ && targ.leng

我希望用户只允许以下格式的电话号码

xxx xxx xxxx或XXXXXXXXX仅限所有数字。有人能推荐一个正则表达式来实现这一点吗?

类似这样的东西:

\d{3}-\d{3}-\d{4}|\d{10}

虽然一般电话号码验证是一个比您试图解决的问题更大的问题,但我将执行以下操作:

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
同样,这是一个微不足道的检查。关于更严格一点的内容,请参见此


另请参见

以下正则表达式可用于验证美国境内定义的和可操作的(自2011年6月起)电话区号:

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-?)?(([2-9]\d{2})|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/

查看此链接:这似乎很简单。看看入门指南。这不是一个公共网页,是吗?因为居住在其他国家的人可能会因为他们的电话号码被拒绝而有点恼火。我同意NNNN。不过,在某些用例中,它会更可取。我有一些客户只发送到美国和加拿大,因此允许其他号码格式无法满足他们的要求。当我想到电话号码验证时,我想到的不仅仅是长度。注册电话号码时,我最喜欢做的事情是
911-911-9111
,因为缺少任何需要电话号码的东西。+1我想建议类似的东西,只是你需要一些检查,因为我认为
target.length
如果没有初始化,将是一个错误。这将接受000-000-0000。我更喜欢潘克。我个人会在他做的地方添加
[2-9]
序列,尽管我知道请求者说“所有数字”。。。
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])'+
 ')';