我正在使用这个模式来检查电话号码的有效性
^[0-9\-\+]{9,15}$
它适用于0771234567
和+0771234567
,但我希望它也适用于077-1234567
、+077-1234567
、+077-1-23-45-67和+077-123-45-6-7。在模式中应该改变什么?我正在使用这个模式来检查电话号码的有效性
^[0-9\-\+]{9,15}$
它适用于0771234567
和+0771234567
,但我希望它也适用于077-1234567
、+077-1234567
、+077-1-23-45-67和+077-123-45-6-7。在模式中应该改变什么?The following regex matches a '+' followed by n digits
var mobileNumber = "+18005551212";
var regex = new RegExp("^\\+[0-9]*$");
var OK = regex.test(mobileNumber);
if (OK) {
console.log("is a phone number");
} else {
console.log("is NOT a phone number");
}
/^(([+]{0,1}\d{2})|\d?)[\s-]?[0-9]{2}[\s-]?[0-9]{3}[\s-]?[0-9]{4}$/gm
已测试通过的号码
+94 77 531 2412
+94775312412
077 531 2412
0775312412
77 531 2412
// 不匹配
77-53-12412
+94-77-53-12412
077 123 12345
77123 12345
1.
国家代码最多可以有三个数字。 2.
您正在检查国家代码中的 数字
,这也包括 ٠١٢٣٤٥٦٧٨٩ # 阿拉伯-印度
(来源: https://unix.stackexchange.com/a/414230) - dewey这个正则表达式匹配常见格式1-(999)-999-9999及其间的任何数字。此外,该正则表达式将允许使用括号或不使用括号,并且可以使用句点、空格或破折号进行分隔。"^([01][- .])?(\(\d{3}\)|\d{3})[- .]?\d{3}[- .]\d{4}$"
^[0-9\-\+]{9,15}$
可以匹配0+0+0+0+0+0,或000000000等。
(\-?[0-9]){7}
将匹配任意位置的特定数字及其可选连字符。
+077格式是什么意思?
这不是一个有效的格式。没有国家代码以0开头。
在+后面的数字通常应该是1到3位长的国家代码。
允许使用“+”、国家代码CC,然后是可选连字符,“0”加上两个数字,然后是下一个七个数字的连字符和数字,请尝试:
^\+CC\-?0[1-9][0-9](\-?[0-9]){7}$
哦,{3,3} 是多余的,可以简化为 {3}。
^+?\d{3}-?\d{2}-?\d{2}-?\d{3}$
^(\\+?)\d{3,3}-?\d{2,2}-?\d{2,2}-?\d{3,3}$
补充@Joe Johnston的答案,这也将被接受:
+16444444444,,241119933
(为了苹果特殊字符支持的拨入 - https://support.apple.com/kb/PH18551?locale=en_US)
\(?\+[0-9]{1,3}\)? ?-?[0-9]{1,3} ?-?[0-9]{3,5} ?-?[0-9]{4}( ?-?[0-9]{3})? ?([\w\,\@\^]{1,10}\s?\d{1,10})?
针对所有电话号码格式:
/^\+?([87](?!95[5-7]|99[08]|907|94[^09]|336)([348]\d|9[0-6789]|7[01247])\d{8}|[1246]\d{9,13}|68\d{7}|5[1-46-9]\d{8,12}|55[1-9]\d{9}|55[138]\d{10}|55[1256][14679]9\d{8}|554399\d{7}|500[56]\d{4}|5016\d{6}|5068\d{7}|502[345]\d{7}|5037\d{7}|50[4567]\d{8}|50855\d{4}|509[34]\d{7}|376\d{6}|855\d{8,9}|856\d{10}|85[0-4789]\d{8,10}|8[68]\d{10,11}|8[14]\d{10}|82\d{9,10}|852\d{8}|90\d{10}|96(0[79]|17[0189]|181|13)\d{6}|96[23]\d{9}|964\d{10}|96(5[569]|89)\d{7}|96(65|77)\d{8}|92[023]\d{9}|91[1879]\d{9}|9[34]7\d{8}|959\d{7,9}|989\d{9}|971\d{8,9}|97[02-9]\d{7,11}|99[^4568]\d{7,11}|994\d{9}|9955\d{8}|996[2579]\d{8}|998[3789]\d{8}|380[345679]\d{8}|381\d{9}|38[57]\d{8,9}|375[234]\d{8}|372\d{7,8}|37[0-4]\d{8}|37[6-9]\d{7,11}|30[69]\d{9}|34[679]\d{8}|3459\d{11}|3[12359]\d{8,12}|36\d{9}|38[169]\d{8}|382\d{8,9}|46719\d{10})$/
JS 代码:
function checkIfValidPhoneNumber(input){
"use strict";
if(/^((\+?\d{1,3})?[\(\- ]?\d{3,5}[\)\- ]?)?(\d[.\- ]?\d)+$/.test(input)&&input.replace(/\D/g,"").length<=15){
return true;
} else {
return false;
}
}
在检查电话号码方面,它可能比较原始,但它会检查输入文本是否符合E.164建议。
它允许在电话号码和区域代码周围使用一些分隔符(.-) 例如:
所有都符合E.164标准并经过验证。+7(918)000-12-34
911
1-23456-789.10.11.12