You are here

public function DecimalValidator::validate in Form API Validation 8.2

Execute validation.

Parameters

\Drupal\fapi_validation\Validator $validator: Validator.

array $element: Form Element.

\Drupal\Core\Form\FormStateInterface $form_state: Form State.

Return value

bool Check.

Overrides FapiValidationValidatorsInterface::validate

File

src/Plugin/FapiValidationValidator/DecimalValidator.php, line 22

Class

DecimalValidator
Fapi Validation Plugin for Decimal validation.

Namespace

Drupal\fapi_validation\Plugin\FapiValidationValidator

Code

public function validate(Validator $validator, array $element, FormStateInterface $form_state) {
  $params = $validator
    ->getParams();
  $value = $validator
    ->getValue();
  if (count($params) == 2) {
    $pattern = '/^[0-9]{' . $params[0] . '}\\.[0-9]{' . $params[1] . '}$/';
    return (bool) preg_match($pattern, (string) $value);
  }
  return (bool) filter_var($value, FILTER_VALIDATE_FLOAT);
}