function FormElementBase::validatePattern

Same name in other branches
  1. 11.x core/lib/Drupal/Core/Render/Element/FormElementBase.php \Drupal\Core\Render\Element\FormElementBase::validatePattern()

#element_validate callback for #pattern form element property.

Parameters

$element: An associative array containing the properties and children of the generic form element.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

array $complete_form: The complete form structure.

1 method overrides FormElementBase::validatePattern()
FormElement::validatePattern in core/lib/Drupal/Core/Render/Element/FormElement.php
#element_validate callback for #pattern form element property.

File

core/lib/Drupal/Core/Render/Element/FormElementBase.php, line 140

Class

FormElementBase
Provides a base class for form element plugins.

Namespace

Drupal\Core\Render\Element

Code

public static function validatePattern(&$element, FormStateInterface $form_state, &$complete_form) {
    if ($element['#value'] !== '') {
        // The pattern must match the entire string and should have the same
        // behavior as the RegExp object in ECMA 262.
        // - Use bracket-style delimiters to avoid introducing a special delimiter
        //   character like '/' that would have to be escaped.
        // - Put in brackets so that the pattern can't interfere with what's
        //   prepended and appended.
        $pattern = '{^(?:' . $element['#pattern'] . ')$}';
        if (!preg_match($pattern, $element['#value'])) {
            $form_state->setError($element, t('%name field is not in the right format.', [
                '%name' => $element['#title'],
            ]));
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.