【发布时间】:2011-07-20 14:21:25
【问题描述】:
我一直在寻找几个小时来找到一个为我执行此操作的正则表达式,我发现的所有正则表达式要么需要破折号,要么限制我不需要的其他内容。
喜欢这个: ^(?([0-9]{3}))?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$
基本上我想允许这些类型的电话号码输入,这些都是有效的:
+000 111111111
+00011111111111
0022 111111111111
0022111111111
+333-4444-5555-6666
000-7878787-0000-4587
请注意,位数没有限制,我只希望验证过滤掉空输入和字母表。也过滤掉除了最多 4 个破折号之外的所有其他字符,最多。 4 个空格和一个可选的单加号。
这是否可以通过 preg_match 实现?
感谢任何帮助,谢谢!
【问题讨论】:
-
$numSpaces = preg_match_all('/[ ]/', $phone, $matches); $numDashes = preg_match_all('/[-]/', $phone, $matches); $numPlus = preg_match_all('/[+]/', $phone, $matches); if (!empty ($phone) && (is_numeric($phone))) { if (($numSpaces
标签: php regex forms validation