我想檢查我的表單域的值是否它是數字與兩位小數,並做相應的驗證。它應該接受兩位小數的數字例如:2.33否則它應該拋出像2.987這樣的錯誤,它不應該接受兩位以上的小數。誰能幫我這個?驗證文本字段值與數字與兩位小數只在coldfusion
我曾嘗試以下操作:
<cfif NOT isValid(#NumberFormat(7.4, ",.00")#, dataValue)>
我想檢查我的表單域的值是否它是數字與兩位小數,並做相應的驗證。它應該接受兩位小數的數字例如:2.33否則它應該拋出像2.987這樣的錯誤,它不應該接受兩位以上的小數。誰能幫我這個?驗證文本字段值與數字與兩位小數只在coldfusion
我曾嘗試以下操作:
<cfif NOT isValid(#NumberFormat(7.4, ",.00")#, dataValue)>
正則表達式是驗證的好方法。看看哪個選項,你可以在這裏使用:
<cfif not reFind("^[0-9]+\.[0-9]{2}$", dataValue)>
<cfthrow type="IllegalArgumentException" message="You may input a decimal value with two decimal places only!">
</cfif>
^
=價值已開始與即將到來的模式
[0-9]+
=匹配的數字從0到9,一個數量級以上
\.
=點(字面上),反斜線是轉義碼元因爲.
具有不同的效果
[0-9]{2}
=匹配位數從0到9,恰好兩個數字
$
=值與先前的模式結束
如果要接受點和逗號作爲小數點分隔符,可以將\.
更改爲[,.]
。
如果要接受一個或兩個小數位,可以將[0-9]{2}
更改爲[0-9]{1,2}
。
如果您不需要在所有小數,但它們存在的時候,他們必須有兩位小數:
<cfif not reFind("^[0-9]+(\.[0-9]{2})?$", dataValue)>
<cfthrow type="IllegalArgumentException" message="You may input a decimal value without decimal places or with exactly two decimal places only!">
</cfif>
(\.[0-9]{2})?
=括號組模式和問號標記爲「可能匹配一次」或「可能完全不匹配」。
注:[0-9]
相當於\d
。我只是希望看到數字。
我不喜歡使用cfinput
,但由於時間的關係:
<cfinput type="text" name="name" mask="9.99"/>
我已經試過\t ** ** –
https://stackoverflow.com/questions/5080671/limit-cfinput-to -valid-currency-values對您有幫助嗎? – jvwilge