HTML_QuickForm
[ class tree: HTML_QuickForm ] [ index: HTML_QuickForm ] [ all elements ]

Source for file Regex.php

Documentation is available at Regex.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * Validates values using regular expressions
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * LICENSE: This source file is subject to version 3.01 of the PHP license
  10.  * that is available through the world-wide-web at the following URI:
  11.  * http://www.php.net/license/3_01.txt If you did not receive a copy of
  12.  * the PHP License and are unable to obtain it through the web, please
  13.  * send a note to license@php.net so we can mail you a copy immediately.
  14.  *
  15.  * @category    HTML
  16.  * @package     HTML_QuickForm
  17.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  18.  * @copyright   2001-2011 The PHP Group
  19.  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
  20.  * @version     CVS: $Id: Regex.php 317587 2011-10-01 07:55:53Z avb $
  21.  * @link        http://pear.php.net/package/HTML_QuickForm
  22.  */
  23.  
  24. /**
  25.  * Abstract base class for QuickForm validation rules
  26.  */
  27. require_once 'HTML/QuickForm/Rule.php';
  28.  
  29. /**
  30.  * Validates values using regular expressions
  31.  *
  32.  * @category    HTML
  33.  * @package     HTML_QuickForm
  34.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  35.  * @version     Release: 3.2.13
  36.  * @since       3.2
  37.  */
  38. {
  39.     /**
  40.      * Array of regular expressions
  41.      *
  42.      * Array is in the format:
  43.      * $_data['rulename'] = 'pattern';
  44.      *
  45.      * @var     array 
  46.      * @access  private
  47.      */
  48.     var $_data = array(
  49.                     'lettersonly'   => '/^[a-zA-Z]+$/',
  50.                     'alphanumeric'  => '/^[a-zA-Z0-9]+$/',
  51.                     'numeric'       => '/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/',
  52.                     'nopunctuation' => '/^[^().\/\*\^\?#!@$%+=,\"\'><~\[\]{}]+$/',
  53.                     'nonzero'       => '/^-?[1-9][0-9]*/'
  54.                     );
  55.  
  56.     /**
  57.      * Validates a value using a regular expression
  58.      *
  59.      * @param     string    $value      Value to be checked
  60.      * @param     string    $regex      Regular expression
  61.      * @access    public
  62.      * @return    boolean   true if value is valid
  63.      */
  64.     function validate($value$regex = null)
  65.     {
  66.         // Fix for bug #10799: add 'D' modifier to regex
  67.         if (isset($this->_data[$this->name])) {
  68.             if (!preg_match($this->_data[$this->name'D'$value)) {
  69.                 return false;
  70.             }
  71.         else {
  72.             if (!preg_match($regex 'D'$value)) {
  73.                 return false;
  74.             }
  75.         }
  76.         return true;
  77.     // end func validate
  78.  
  79.     /**
  80.      * Adds new regular expressions to the list
  81.      *
  82.      * @param     string    $name       Name of rule
  83.      * @param     string    $pattern    Regular expression pattern
  84.      * @access    public
  85.      */
  86.     function addData($name$pattern)
  87.     {
  88.         $this->_data[$name$pattern;
  89.     // end func addData
  90.  
  91.  
  92.     function getValidationScript($options = null)
  93.     {
  94.         $regex = isset($this->_data[$this->name]$this->_data[$this->name$options;
  95.  
  96.         // bug #12376, converting unicode escapes and stripping 'u' modifier
  97.         if ($pos strpos($regex'u'strrpos($regex'/'))) {
  98.             $regex substr($regex0$possubstr($regex$pos + 1);
  99.             $regex preg_replace('/(?<!\\\\)(?>\\\\\\\\)*\\\\x{([a-fA-F0-9]+)}/''\\u$1'$regex);
  100.         }
  101.  
  102.         return array("  var regex = " $regex ";\n""{jsVar} != '' && !regex.test({jsVar})");
  103.     // end func getValidationScript
  104.  
  105. // end class HTML_QuickForm_Rule_Regex
  106. ?>

Documentation generated on Sat, 01 Oct 2011 09:00:18 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.