2011-07-02 72 views
1

我寫了這個功能:的preg_match問題

public static function isDecimal($value, $places = 2) 
    { 
     if(preg_match("/^[0-9]+(\.[0-9]{".$places."})?$/", $value)) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

,其目的是測試所輸入的值是否爲數字/十進制數。但是,如果輸入數字「23c.32」或「2b3.23」,則返回true。任何人都可以指出錯誤在我的正則表達式中的位置?

+1

它在這裏工作得很好。你確定問題出在你的函數內部,而不是函數調用附近? – Pianosaurus

+0

另外,雖然有點題外話:雙引號字符串擴展變量,所以你可以把$地方放在字符串本身,沒有點連接。 – Pianosaurus

+0

@Pianosaurus - 謝謝!如果你把這個作爲答案,我可以標記它。 –

回答

1

它在這裏工作得很好。問題必須在函數調用附近。

1

這個正則表達式很好,如果你使用它提供的例子,它會返回false。