Yii2 验证百分比的规则,如 65.45
Yii2 rules for validating percentage like 65.45
我知道这是一个非常简单且重复的问题,但我几乎尝试了所有但没有得到任何解决方案。
我想验证一定比例的学生喜欢。例如:65.45..
用户必须像这样输入值,否则它会显示错误。
我在模型中给出了以下规则。但它只取整数值。未验证百分比。
[['c_percentage'], 'number', 'numberPattern' => '/^\s*[-+]?[0-9]*[.,]?[0-9]+([eE][-+]?[0-9]+)?\s*$/'],
请帮助解决这个问题。提前致谢。
试试这个它会验证
[['c_percentage'], 'number', 'numberPattern' => '/^[0-9]{1,2}(\.([0-9]{0,2})){0,1}$/'],
这将完成工作:
/^\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*$/
或者,如果您只需要两位小数:
/^\s*[+-]?\d+[.,]\d{2}\s*$/
我知道这是一个非常简单且重复的问题,但我几乎尝试了所有但没有得到任何解决方案。 我想验证一定比例的学生喜欢。例如:65.45.. 用户必须像这样输入值,否则它会显示错误。 我在模型中给出了以下规则。但它只取整数值。未验证百分比。
[['c_percentage'], 'number', 'numberPattern' => '/^\s*[-+]?[0-9]*[.,]?[0-9]+([eE][-+]?[0-9]+)?\s*$/'],
请帮助解决这个问题。提前致谢。
试试这个它会验证
[['c_percentage'], 'number', 'numberPattern' => '/^[0-9]{1,2}(\.([0-9]{0,2})){0,1}$/'],
这将完成工作:
/^\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*$/
或者,如果您只需要两位小数:
/^\s*[+-]?\d+[.,]\d{2}\s*$/