2012-11-13 75 views
0

我有一個輸入表單,如果輸入的話我想去掉一個電話號碼。我發現了一個可以找到各種英國數字的表達式,但只有當輸入的唯一數字是一個數字時纔有效。我需要正則表達式來查找文本中任何數字的實例。在字符串中找到有效的英國電話號碼

這裏是我迄今爲止

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

我覺得你應該爲輸入寫一個解析器,這個正則表達式湯不是我想在一個星期後解密的東西(或者現在來想一想) –

回答

1

只是刪除從開始和結束^$。這將允許正則表達式匹配任何地方。

+0

作品一種享受,謝謝!我真的不得不停止推遲學習正則表達式 – jhodgson4

相關問題