正则表达式电话号码

时间:2010-08-10 15:08:29

标签: php regex preg-replace

如何将以下任何内容更改为数字

1-(999)-999-9999 
1-999-999-9999
1-999-9999999
1(999)-999-9999
1(999)999-9999

我希望最终产品为19999999999

4 个答案:

答案 0 :(得分:2)

最简单的方法是从字符串中删除不是数字的所有字符,然后查看是否最终得到一个10位数字(如果你强制要求,则为11):

$string = "1-(999)-999-9999";
$number = preg_replace('/[^0-9]/', "", $string); // results in 19999999999
if (strlen($number) == 11)
{
  // Probably have a phone number
}

答案 1 :(得分:2)

尝试

preg_replace('\D', '', $string);

这将过滤掉任何非数字。

答案 2 :(得分:0)

你真的不需要正则表达式......

$number = str_replace(array('-', '(', ')'), '', $number);

答案 3 :(得分:0)

preg_replace('[\D*]', '', '1-(999)-999-9999');