我知道这是一个非常简单和重复的问题,但我几乎尝试了所有方法,但没有得到任何解决方案。我想验证一个百分比的学生喜欢。例如:65.45。用户必须仅输入这样的值,否则它应该显示错误。我在模型中给出了以下规则。但它只取整数值。不是百分比验证。
[['c_percentage'], 'number', 'numberPattern' => '/^s*[-+]?[0-9]*[.,]?[0-9]+([eE][-+]?[0-9]+)?s*$/'],
请帮助解决这个问题。提前谢谢。
这将完成这项工作:
/^s*[+-]?d+(?:[.,]d{1,2})?s*$/
解释:
/ : regex delimiter
^ : begining of string
s* : 0 or more spaces
[+-]? : optional plus or minus
d+ : 1 or more digits
(?: : start non capture group
[.,] : dot or comma
d{1,2} : 1 or 2 digits (decimal part)
)? : the group is optional to allow whole integer
s* : 0 or more spaces
$ : end of string
/ : regex delimiter
如果只想匹配浮点值,请删除可选部分:
/^s*[+-]?d+[.,]d{1,2}s*$/
或者,如果您想要正好 2 位小数:
/^s*[+-]?d+[.,]d{2}s*$/
试试这个它将验证
[['c_percentage'], 'number', 'numberPattern' => '/^[0-9]{1,2}(.([0-9]{0,2})){0,1}$/'],