You are here

public function LimitDecimalsValidator::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/LimitDecimalsValidator.php, line 22

Class

LimitDecimalsValidator
Fapi Validation Plugin for Limit Decimals.

Namespace

Drupal\fapi_validation\Plugin\FapiValidationValidator

Code

public function validate(Validator $validator, array $element, FormStateInterface $form_state) {
  $params = $validator
    ->getParams();
  $value = $validator
    ->getValue();
  if (!is_numeric($value)) {
    return FALSE;
  }
  if (count($params) > 0) {
    $value = (double) $value;
    $pattern = '/^[^\\.]*\\.?[0-9]{0,' . $params[0] . '}$/';
    return (bool) preg_match($pattern, (string) $value);
  }
  return TRUE;
}