Validating UK phone numbers in PHP(在 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 中验证英国电话号码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 PHP 中验证英国电话号码
基础教程推荐
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01