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*$/