您好我有一個ruby正則表達式,我用usinig Rubular http://rubular.com/r/RRc8twB6NL這意味着要檢查10.00的定價小數。我得到它的Rubular工作,但在我的應用程序的代碼不起作用:正則表達式的Ruby驗證器不能正常工作
validates_format_of :price, :with=>/^([0-9]{1,}\.{0,}[0-9]{0,2})$/
感謝所有幫助
您好我有一個ruby正則表達式,我用usinig Rubular http://rubular.com/r/RRc8twB6NL這意味着要檢查10.00的定價小數。我得到它的Rubular工作,但在我的應用程序的代碼不起作用:正則表達式的Ruby驗證器不能正常工作
validates_format_of :price, :with=>/^([0-9]{1,}\.{0,}[0-9]{0,2})$/
感謝所有幫助
如果你只想要有一個數字然後零的價格,你需要正則表達式
/\A[1-9]0*\.\d\d\z/
如果任何號碼小數點前允許點是
/\A[1-9]\d*\.\d\d\z/
如果如果你想允許美元小數部分是可選的它要麼是的
/\A[1-9]0*(\.\d\d)?\z/
/\A[1-9]\d*(\.\d\d)?\z/
符號(可能與之間的空格)它可以是
/\A(\$\s*)?[1-9]0*\.\d\d\z/
/\A(\$\s*)?[1-9]\d*\.\d\d\z/
/\A(\$\s*)?[1-9]0*(\.\d\d)?\z/
/\A(\$\s*)?[1-9]\d*(\.\d\d)?\z/
要檢查10.00:
/^10\.00$/
要檢查10.00 - 99.99:
/^[1-9]\d\.\d{2}$/
您的正則表達式(可以改寫爲/^\d+\.*\d?\d?/)匹配任何由3個或更多數字組成的字符串以及由1個或多個數字組成的字符串,然後是一些點,然後是0到2位數字(實際上包含這樣一行的任何字符串)。這包括「0007」,「0 ....」和其他非價格。你真的想要驗證什麼? –
@undur_gongor我只是想驗證它的格式是價格,例如$ 1.00,$ 10.00,$ 200.00等。 –