FloatValidator.php 927 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace UCore\Validator;
  3. use UCore\Validator;
  4. /**
  5. * 小数验证器,格式验证,最长长度
  6. */
  7. class FloatValidator extends Validator
  8. {
  9. public function validate(mixed $value, array $data): bool
  10. {
  11. $intLen = $this->args[0];
  12. $floatLen = $this->args[1];
  13. $exp = explode('.', $value);
  14. if (count($exp) > 2) {
  15. // 存在两个点
  16. $this->validation->addError('',"验证内容存在不止一个\".\"。",'');
  17. return false;
  18. }
  19. if (strlen($exp[0]) > $intLen) {
  20. $this->validation->addError('',"验证内容整数部分超长。",'');
  21. return false;
  22. }
  23. if (count($exp) > 1) {
  24. if (strlen($exp[1]) > $floatLen) {
  25. $this->validation->addError('',"验证内容小数部分超长。",'');
  26. return false;
  27. }
  28. }
  29. return true;
  30. }
  31. }