private function Regex::getNonDelimitedPattern

Convert the htmlPattern to a suitable format for HTML5 pattern. Example: /^[a-z]+$/ would be converted to [a-z]+ However, if options are specified, it cannot be converted

Pattern is also ignored if match=false since the pattern should then be reversed before application.

@todo reverse pattern in case match=false as per issue #5307

@link http://dev.w3.org/html5/spec/single-page.html#the-pattern-attribute

Return value

string|null

1 call to Regex::getNonDelimitedPattern()
Regex::getHtmlPattern in drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php
Returns htmlPattern if exists or pattern is convertible.

File

drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php, line 77

Class

Regex
@author Bernhard Schussek <bschussek@gmail.com>

Namespace

Symfony\Component\Validator\Constraints

Code

private function getNonDelimitedPattern() {

  // If match = false, pattern should not be added to HTML5 validation
  if (!$this->match) {
    return null;
  }
  if (preg_match('/^(.)(\\^?)(.*?)(\\$?)\\1$/', $this->pattern, $matches)) {
    $delimiter = $matches[1];
    $start = empty($matches[2]) ? '.*' : '';
    $pattern = $matches[3];
    $end = empty($matches[4]) ? '.*' : '';

    // Unescape the delimiter in pattern
    $pattern = str_replace('\\' . $delimiter, $delimiter, $pattern);
    return $start . $pattern . $end;
  }
  return null;
}