2014-09-21 27 views
2

當我用 - 分隔號碼時,我得到了它的工作。如何添加的參數時,數字是這樣的:PHP找到所有可能組合的字符串中的電話號碼

(xxx) xxx xxxx 
xxx.xxx.xxxx 
xxx-xxx-xxxx 
(xxx)xxx-xxxx 
xxxxxxxxxx 
xxx xxx xxxx 

PHP代碼:

//find phone in string 
preg_match('/\b\d{3}\s*-\s*\d{3}\s*-\s*\d{4}\b/', $phone, $phone_matches); 
$find_phone = $phone_matches[0]; 

編輯: 我找到了一種方法來在文本中替換它。所以,我現在還在找工作的所有格式申請

$hide_phone = preg_replace('/\b\d{3}\s*-\s*\d{3}\s*-\s*\d{4}\b/', '[hidden phone]', $phone); 

回答

0

不同approeach:

"/[(]*\d{3}[)]*\s*[.\-\s]*\d{3}[.\-\s]*\d{4}/" 
+1

完美的作品!謝謝 – BragDeal 2014-09-21 23:40:17

+0

不客氣!檢查更新的正則表達式 – SolidSnake 2014-09-21 23:40:58

+0

你的'*'應該是'?'或更新正則表達式,因爲_valid_電話號碼可以是'((800.-234- -4214' – Class 2014-09-22 00:10:50

0

嘗試使用

preg_match('\(?[2-9][0-8][0-9]\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}',$phone, $phone_matches); 
+0

這些參數沒有爲許多格式 – BragDeal 2014-09-21 23:36:20

相關問題