You are here

public function field_validation_pattern_validator::validate in Field Validation 7.2

Validate field.

Overrides field_validation_validator::validate

File

plugins/validator/field_validation_pattern_validator.inc, line 20

Class

field_validation_pattern_validator

Code

public function validate() {

  // Following code was copied from http://drupal.org/node/1082134, thanks to DrewMathers
  if ($this->value != '') {
    $pattern = $this->rule->settings['pattern'];
    $pattern = preg_quote($pattern, "/");

    // Escape regex control characters
    if (PHP_VERSION < 5.3) {
      $pattern = preg_replace('/-/', '\\-', $pattern);

      // PHP bug #47229
    }
    $pattern = preg_replace('/a/', '[a-zA-Z]', $pattern);
    $pattern = preg_replace('/9/', '[0-9]', $pattern);
    $pattern = preg_replace('/#/', '[a-zA-Z0-9]', $pattern);
    if (!preg_match('/^(' . $pattern . ')$/', $this->value)) {
      $this
        ->set_error();
    }
  }
}