preg_replace help:电话号码

时间:2010-01-31 22:24:08

标签: php preg-replace

我需要一点帮助。此代码正确显示我输入的每种格式 - 除非它是xxx.xxx.xxxx

它保持了时间!如何过滤期间?

preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3", $phone_enter)

2 个答案:

答案 0 :(得分:4)

您需要更新查询,以便允许(点),我添加了\.?,这意味着点可能显示为零或一次。

preg_replace("/([0-9]{3})\.?([0-9]{3})\.?([0-9]{4})/", "$1-$2-$3", $phone_enter)

答案 1 :(得分:4)

我会这样做:

preg_replace('/(\d{3})([.-])?(\d{3})\2(\d{4})/', '$1-$3-$4', $phone_number);

\d[0-9]的简写。使用反向引用意味着您可以输入“123.456.7890”或“123.456.7890”但不能输入“123.4567890”或“123.456-7890”。

另请注意,其他国家/地区的电话号码格式不同,如果这与您正在进行的操作相关。