在字符串中查找有效的英国电话号码

时间:2012-11-13 20:48:20

标签: php regex

我有一个输入表单,我想在输入时删除一个电话号码。我找到了一个表达式,可以找到各种英国数字,但它只有在输入的唯一内容是数字时才有效。我需要正则表达式在文本中找到任何数字的实例。

这是我到目前为止所拥有的

if (preg_match_all('/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/', $post, $match_num))
{
    $error[0] = 1;
    $error[2] = 'error text';
    $error[4] = $match_num;
}

1 个答案:

答案 0 :(得分:1)

只需从开头和结尾移除^$即可。这将允许正则表达式匹配任何地方。