2013-10-28 47 views

回答

1
^(\d+|\d{1,3}(\.\d{1,3})*)$ 

第一交替可以讓你有簡單的所有數字。第二個檢查1-3位數字,可選地跟隨一組小數點,其後1-3位數字。這適用於你的例子。

+0

是的,這是有效的。我在過去的30分鐘裏試過5次正常表達,但沒有成功。謝謝。 –

+0

最終'\ d'字符類應該是'\ d {3}',而不是'\ d {1,3}',因爲它當前接受無效輸入:[example](http://codepad.viper-7 .com/4JAtuH)... – ircmaxell

+0

@ircmaxell很好;我對這個問題的要求還不清楚。我認爲'11.11.11.11'也是有效的。如果情況並非如此,那麼@ircmaxell說你可以改變重複要求 –

0

試試這個

if (preg_match('/^(\d{1,3}(\.\d{3})+|\d+)$/', $number)) { 
    // correct number 
} 

UPD:添加表達式僅數