【发布时间】:2010-05-13 17:59:36
【问题描述】:
我将如何编写一个 if 语句来查找电话号码并将它们存储到一个变量中。这是我到目前为止所拥有的,但它不起作用。
if (preg_match('/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
/', $buffer, $matches))
{
$phonenumber = html_entity_decode($matches[1]);
}
【问题讨论】:
-
您能否提供一些您想要匹配的电话号码以及您不想匹配的号码的示例?或者至少有一些更详细的要求?
-
你能解释一下它在什么方面不起作用吗?你能举一个失败的例子,它给出了什么输出,以及你的期望吗?
-
这个。是一个完美的“两个问题”的例子。
-
它需要匹配 3334445555、333.444.5555、333-444-5555、333 444 5555、(333) 444 5555 及其所有组合。
-
那么 1-333-444-5555 呢? 333-444-5555x1234怎么样?
标签: php regex preg-match pcre