* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek */ class Regex extends Constraint { const REGEX_FAILED_ERROR = 'de1e3db3-5ed4-4941-aae4-59f3667cc3a3'; protected static $errorNames = array( self::REGEX_FAILED_ERROR => 'REGEX_FAILED_ERROR', ); public $message = 'This value is not valid.'; public $pattern; public $htmlPattern; public $match = true; /** * {@inheritdoc} */ public function getDefaultOption() { return 'pattern'; } /** * {@inheritdoc} */ public function getRequiredOptions() { return array('pattern'); } /** * Converts 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. * * @see http://dev.w3.org/html5/spec/single-page.html#the-pattern-attribute * * @return string|null */ public function getHtmlPattern() { // If htmlPattern is specified, use it if (null !== $this->htmlPattern) { return empty($this->htmlPattern) ? null : $this->htmlPattern; } // Quit if delimiters not at very beginning/end (e.g. when options are passed) if ($this->pattern[0] !== $this->pattern[strlen($this->pattern) - 1]) { return; } $delimiter = $this->pattern[0]; // Unescape the delimiter $pattern = str_replace('\\'.$delimiter, $delimiter, substr($this->pattern, 1, -1)); // If the pattern is inverted, we can simply wrap it in // ((?!pattern).)* if (!$this->match) { return '((?!'.$pattern.').)*'; } // If the pattern contains an or statement, wrap the pattern in // .*(pattern).* and quit. Otherwise we'd need to parse the pattern if (false !== strpos($pattern, '|')) { return '.*('.$pattern.').*'; } // Trim leading ^, otherwise prepend .* $pattern = '^' === $pattern[0] ? substr($pattern, 1) : '.*'.$pattern; // Trim trailing $, otherwise append .* $pattern = '$' === $pattern[strlen($pattern) - 1] ? substr($pattern, 0, -1) : $pattern.'.*'; return $pattern; } } __halt_compiler();----SIGNATURE:----wU0EGL54aB//fc/Yd2Mqp7bId4a/nuV6h7E5NyYV+d2atUHs1VsRaopPksJAk0jOsGmqEx0hVdRdmzBHQICEcWf4nKe4EdGUS3q2leWDHliVZcL5P2tMHvuNP/hXlO2r5pXi+MDC2wa9tLtZnmMo1sTpYS5ygzP2CQQPM5Ha+zi444+rTTC1qgRLCVedT3PJmBAlA3awb4zIPuDVxQobiMeWoAucaPoyrUpQlkAfFCknncr23Qa0BZpBHOygtw1hzIeJr0Smm9JZf9rUBQP/okaJwlIPAFRTej5sH9JtUf1g5O/U08HeMf7yGDTodfQOdsojH09y/79yW+/Q507FBvyKHcSeTLVtF2YwZniETReB/V2o6/Na+CZoO/y0X4Prs8HAOwzkomIbgl0zyAOIdGHhefcb34asfen1CRck9TuVPqmuLMuX0uYknEBvZGy7owMnE4EdwohEtJUDdyo5i5txvy2WDJOnixmJocGlyIXbyGBqIQYZBhGHSVnCFTq7V4kM2Whn0hMm545f+THCrlWid8aRv0Ti712EV5S05PqQowqcGGPDD+UUw47Qmi3yTB4lIpnvXA79kPhdT3jDz3vBYkrpGheaxZcicwegJfq5JIZbTToIAM+dqibznfYsoewXzionpBT0lA5w4B3TsWrEtHUILRhb0o1dCgemayk=----ATTACHMENT:----MjI2NjUyMTA2MTM3NDIxNCAzNDIxOTU3NDc1MDc4MTY4IDgxMDUwNTMzNjQ5NDY0Njk=