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}$