2011-07-07 106 views

回答

196

試試這個:

preg_replace('/[^0-9]/', '', '604-619-5135'); 

的preg_replace使用PCREs一般開頭和結尾/

+0

內/雙引號與PCRE tho沒有任何關係。顯然(在'(?flags)'之前的日子裏)設計/編寫函數/ API的人認爲使用雙引號'/ flags'形式傳遞正則表達式是一個好主意,而不是使用額外的函數參數。 – Qtax

+5

@Qtax:好點,是的,我知道這是我們從(「g/re/p」)得到單詞「grep」的地方 –

9

您需要將模式包含在分隔符中 - 通常使用斜槓(/)。試試這個:

echo preg_replace("/[^0-9]/","",'604-619-5135'); 
+1

[分隔符可以是任何非字母數字,非反斜槓,非空白字符。] (http://php.net/manual/en/regexp.reference.delimiters.php) –

83

這是給未來的開發者,你也可以試試這個。簡單太

echo preg_replace('/\D/', '', '604-619-5135'); 
+2

如果數字已經在+開頭 – mi3afzal

+5

不會工作你好,我是一個未來的開發者。這確實滿足了我們的需求。謝謝。 – zesda

相關問題