我想检查表单字段的值是否是带有两位小数的数字,并相应地进行验证。它应接受带有两位小数的数字,例如:2.33,否则应抛出错误,如2.987,不应接受超过两位的小数。谁能帮我这个?
我尝试了以下方法:
<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
。我只喜欢实际看到数字。关于coldfusion - 仅在Coldfusion中使用带有两位小数的数字验证文本字段值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44561738/