需要修改正则表达式以验证英国电话

时间:2015-06-18 04:55:58

标签: php regex validation phone-number

我对英国电话号码进行了php验证,由我表格中的潜在客户提出。 它看起来像这样:

function phoneUK(phone){
    var regex = /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/i;
    return regex.test(phone);
}

问题在于,在这种形式下,它只允许前面有0后跟10位数字(0XXXX XXXXXX)的电话号码,而且最近还有前导零后11位数字的合法电话号码。

如何更改代码以便允许使用这些类型的电话号码?

1 个答案:

答案 0 :(得分:0)

试试这个:

function phoneUK(phone){
    var regex = /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{2}\)?\s?\d{5}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{3}\)?\s?\d{4}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3}|\d{4}\s?\d{3})|\d{5}\)?\s?\d{4,5}|\d{5,6}\)?\s?\d{4,6})$/i;
    return regex.test(phone);
}

希望这有帮助。