谁能告诉我 RegEx 将如何验证国际电话号码,包括号码之间的空格并允许这些字符:- ( )
.
字符串中的数字数量并不太重要,我只是希望用户能够输入类似示例 1 或示例 2 的内容(如果他们愿意的话):
例子:
+44 (0) 207 111 1111
442071111111
据我所知,我已经通读并测试了一些类似问题的发布答案,但到目前为止,它们都没有按照我希望的方式为我工作。
请有人可以帮助我清楚地解释如何编写上述内容以进行验证?
非常感谢任何可以提供帮助的人。
谁能告诉我 RegEx 将如何验证国际电话号码,包括号码之间的空格并允许这些字符:- ( )
.
字符串中的数字数量并不太重要,我只是希望用户能够输入类似示例 1 或示例 2 的内容(如果他们愿意的话):
例子:
+44 (0) 207 111 1111
442071111111
据我所知,我已经通读并测试了一些类似问题的发布答案,但到目前为止,它们都没有按照我希望的方式为我工作。
请有人可以帮助我清楚地解释如何编写上述内容以进行验证?
非常感谢任何可以提供帮助的人。
试试这个代码
HTML 代码
<input type="text" id="phone"/>
JS代码
$("#phone").blur(function() {
var regexp = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/
var no = $("#phone").val();
if (!regexp.test(no) && no.length < 0) {
alert("Wrong phone no");
}
});
/^
[\s]
或\s
[(]
和[)]
. 使用\(
and\)
是丑陋的,并且会使事情变得混乱。?
其后添加-
or [-]
。但是,如果您没有将它放在一系列其他字符中的第一个或最后一个,则可能需要对其进行转义: \-
[-.\s]
将需要连字符、句点或空格。最后一个括号后面的问号将使所有这些对于该插槽都是可选的。\d{3}
:需要 3 位数字:000-999。的简写
[0-9][0-9][0-9]
。[2-9]
:该插槽需要一个数字 2-9。(\+|1\s)?
: 接受一个“加号”或一个 1 和一个空格(竖线字符,,|
是“或”),并使其可选。“加号”必须被转义。[246]
需要 2、4 或 6。 [77|78]
需要 77 或 78。$/
: 结束表达式这是一个很长的正则表达式,但它支持两种格式(例如 2 是一个有效的国际号码,必须以 + 或 00 开头):
/^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$/i
这允许扩展和多种格式和分隔符的选择。
火柴:
在 $n 上,它节省了:
此处给出了相同的答案:电话号码验证的综合正则表达式(直接链接到我的答案)
/*
@isValidUSPhoneFormat function will check valid US Format
Allowed US Format
(123) 456-7890
123-456-7890
123.456.7890
1234567890
(734) 555.1212
*/
function isValidUSPhoneFormat(elementValue){
var phoneNumberPattern = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s.]{0,1}[0-9]{3}[-\s.]{0,1}[0-9]{4}$/;
if(phoneNumberPattern.test(elementValue) == false)
{
var phoneNumberPattern = /^(\()?\d{3}(\))?(.|\s)?\d{3}(.|\s)\d{4}$/;
return phoneNumberPattern.test(elementValue);
}
return phoneNumberPattern.test(elementValue);
}
希望这将帮助您理解 JavaScript RegEx..
甚至不要尝试。试图防范您认为无效的输入可能会导致愤怒的用户无法输入完全有效的电话号码。如果用户真的想输入一个无效的电话号码,他/她无论如何都可以这样做。
尝试使用libphonenumber-js包的isValidPhoneNumber(phoneNumber, countryCode)方法。首先是开头带有“+”的电话号码。第二个参数是国家代码(例如:'US'、'IN')。这可以帮助您准确验证任何国际号码。
function checkPhoneNumber(val) {
var num = document.getElementById(val).value;
var mob=/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g;
if (mob.test(num) == false) {
alert("Please Enter Valid Phone Number.");
document.getElementById(val).value = "";
return false;
}
if (num.length > 15) {
alert("Only 15 characters allowed for Phone Number field.");
document.getElementById(val).value = "";
return false;
}
return true;
}
试试看