0

可能重复:
用于电话号码验证的综合正则表达式

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

首先,这里是我的家庭电话号码

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

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

那里有正则表达式大师吗?

4

2 回答 2

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。
于 2012-12-03T17:05:53.423 回答
0

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

$output = preg_replace('/[^\d\s]/', '', $str);
于 2012-12-03T17:05:38.120 回答