验证美国电话号码格式

validate american format of phone number

本文关键字:格式 电话号码 美国 验证      更新时间:2023-09-26

我想验证电话和传真号码字段。我想验证一下,因为电话号码和传真都是美国格式的。我已经找过了,但没有成功。任何人都可以帮助我如何验证以下格式

Edit1 (415) xxx xxxx

最好的方法是删除所有非数字,然后自己将其格式化为您喜欢的格式。

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,我建议您查看一下Google的libphonenumber.

下面的Javascript REGEX验证123-456-7890或123.456.7890或1234567890或1234567890或(123)456-7890

^[(]{0,1}[0-9]{3}[)]{0,1}[-'s'.]{0,1}[0-9]{3}[-'s'.]{0,1}[0-9]{4}$

这里是一个我使用(jQuery)的字段验证onBlur:

http://jsfiddle.net/userdude/Ju72W/

jQuery(document).ready(function($){
    $cf = $('#customfield_10117');
    $cf.blur(function(e){
        phone = $(this).val();
        phone = phone.replace(/[^0-9]/g,'');
        if (phone.length != 10) {
            e.preventDefault();
            if (confirm('Phone number must include area code and prefix.')) {
                setTimeout(function(){$cf.focus()}, 0);
            }
        } else {
            area = phone.substring(0,3);
            prefix = phone.substring(3,6);
            line = phone.substring(6);
            $(this).val('(' + area + ') ' + prefix + '-' + line);
        }
    });
});

检查是否有10个数字提交,如果是,重新格式化为(000)000-0000格式。

编辑

使用相同技术(添加了国家代码限定符)的函数。

http://jsfiddle.net/userdude/Ju72W/1/

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

PhoneFormat.com有一个javascript库,使格式化和验证数字非常容易。