在 PHP 中验证英国电话号码 [英] Validating UK phone numbers in PHP

查看:28
本文介绍了在 PHP 中验证英国电话号码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我购买了联系表.很棒的小东西,但我需要转换电话号码的验证以允许英国号码格式 - 换句话说,允许空格.

I purchased a contact form. Great little thing but I need to convert the validation for the phone number to allow for UK number formats - in other words, to allow for spaces.

现在它验证时没有空格,并且至少有 8 个字符:

Right now it validates without spaces and has a minimum length of 8 characters:

if(is_numeric($phone))
{
    if(!$phone || strlen($phone) < 8)
    {
        $error .= "Please enter your phone number without spaces.<br />";
    }
}
else
{
    $error .= "Please enter numeric characters in the phone number field.<br />";
}

推荐答案

电话号码对于正则表达式模式来说通常很糟糕,而这正是你所需要的.

Phone numbers are typically horrible for regex patterns, which is what you will need.

以这种模式为例:

$pattern = "/^(+44s?7d{3}|(?07d{3})?)s?d{3}s?d{3}$/";

$match = preg_match($pattern,$input);

if ($match != false) {
    // We have a valid phone number
} else {
    // We have an invalid phone number
}

该模式将与是否包含 +44 匹配,例如

That pattern will match with +44 included or not e.g.

所有这些都会匹配:

07222 555555

(07222) 555555

+44 7222 555 555

这些不会

7222 555555

+44 07222 555555

(+447222) 555555

有很多网站提供正则表达式的教程/备忘单等.尝试其中一些:

There are a load of sites that offer tutorials / cheat sheets etc. for regular expressions try some of these:

http://regexlib.com/Default.aspx

还有一篇非常好的栈溢出帖子:

as well as a very good stack overflow post:

用于电话号码验证的综合正则表达式

这篇关于在 PHP 中验证英国电话号码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆