Javascript 验证电话号码的美国格式
我想验证电话和传真号码字段。我想验证它们,因为电话号码和传真是以美国格式提供的。我已经搜索过了,但没有成功。任何人都可以帮助我如何验证以下格式Javascript 验证电话号码的美国格式,javascript,validation,Javascript,Validation,我想验证电话和传真号码字段。我想验证它们,因为电话号码和传真是以美国格式提供的。我已经搜索过了,但没有成功。任何人都可以帮助我如何验证以下格式 编辑 1(415)xxx xxxx以下是我用于字段验证的一个(jQuery): 它检查是否有10个提交的数字,如果是真的,则重新格式化为(000)000-0000格式 编辑 使用相同技术的函数(添加了国家代码限定符) 我想,如果你有意识地把你的功能限制在我们的电话号码上,使用正则表达式是可以的 但是,一旦代码必须处理国际事务,该方法就不再是最合适的选
编辑
1(415)xxx xxxx
以下是我用于字段验证的一个(jQuery):
它检查是否有10个提交的数字,如果是真的,则重新格式化为(000)000-0000格式
编辑
使用相同技术的函数(添加了国家代码限定符)
我想,如果你有意识地把你的功能限制在我们的电话号码上,使用正则表达式是可以的
但是,一旦代码必须处理国际事务,该方法就不再是最合适的选择。如果你有这样的计划,而且你正在使用JavaScript,我建议你看看谷歌的。最好的方法是删除所有非数字,然后自己将其格式化为你喜欢的格式
var raw_number = str.replace(/[^0-9]/g,'');
var regex1 = /^1?([2-9]..)([2-9]..)(....)$/;
if(!regex1.test(raw_number)) {
// is invalid...
} else {
var formatted_number = str.replace(regex1,'1 ($1) $2 $3')
}
这样,如果他们输入
234/555-0123
,它将成为您首选的1(234)555 0123
格式,下面的Javascript正则表达式将验证123-456-7890或123.456.7890或1234567890或(123)456-7890
有一个javascript库,使格式化和验证数字非常容易。请指定您认为可以接受的数字格式和不可以接受的数字格式。例如,以下哪项对您有效:“+1 303 433 1321”、“1-303-343-1341”、“333)341-1234”、“333.123.1234”、“333-123-1234”、“333-1234”。您熟悉正则表达式吗?这个问题很好。@benjynito这个问题是关于验证一个号码的存在,而不是格式。如果它只是一个电话号码字段,则不需要正则表达式。你所需要的只是十位数字,输入它的人给出的实际格式在我看来是无关紧要的。编辑:除了去掉数字以外的所有内容。。。这是我发布的内容的一个更简化的版本,只是我没有使用第二个正则表达式。
jQuery(document).ready(function($){
$cf = $('#customfield_10117');
$cf.blur(function(e){
number = phoneCheckAndFormat(this.value, 11);
if (number === false) {
alert('Entered phone number is not correct.');
return;
}
$(this).val(number);
});
});
function phoneCheckAndFormat(phone, digits) {
phone = phone.replace(/[^0-9]/g,'');
digits = (digits > 0 ? digits : 10);
if (phone.length != digits) {
return false;
} else {
code = '';
if (digits == 11) {
code = '1 ';
phone = phone.substring(1);
}
area = phone.substring(0,3);
prefix = phone.substring(3,6);
line = phone.substring(6);
return code + '(' + area + ') ' + prefix + '-' + line;
}
}
var raw_number = str.replace(/[^0-9]/g,'');
var regex1 = /^1?([2-9]..)([2-9]..)(....)$/;
if(!regex1.test(raw_number)) {
// is invalid...
} else {
var formatted_number = str.replace(regex1,'1 ($1) $2 $3')
}
^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$