正则表达式与白色空间的电话号码

时间:2012-12-03 16:59:04

标签: regex

  

可能重复:
  A comprehensive regex for phone number validation

我正在尝试为电话号码整理一些正则表达式模式,但我的正则表达式体验几乎为零。

首先,我在这里寻找家庭电话号码

^0[12]\d{8,9}$

效果很好,但我想做的是允许空格(最多2个)。

那里有任何正则表达的大师吗?

2 个答案:

答案 0 :(得分:1)

我建议您通过剥离非数字来验证电话号码通过发送确认码作为短信验证。我使用twilio验证用户的电话号码。我发送一个代码到该号码,用户必须输入它来验证。那是验证过程。在将其插入数据库之前,我使用以下代码。

$dnum = preg_replace('/\D+/','', $num);
if(preg_match('/^[\d()\s-]+$/', $num) 
    && in_array(strlen($dnum), array(7,10,11,13)){
// valid phone number
}else{
// invalid phone number
}

此代码的作用是什么,

  1. 剥离所有非数字字符
  2. 检查允许的字符。仅允许()-作为非数字字符。
  3. 剥离后检查长度。它应该是7或10或11或13.

答案 1 :(得分:0)

PHP中的示例,其中剩余的字符串仅由数字和空格字符组成。(对于美国)

$output = preg_replace('/[^\d\s]/', '', $str);