filteredpatternsrule.class.php

来自「一个用PHP编写的」· PHP 代码 · 共 73 行

PHP
73
字号
<?php    lt_include( PLOG_CLASS_PATH."class/data/validator/rules/rule.class.php");        define( "DEFAULT_PATTERN_CASE_SENSITIVE", true);    /**	 * \ingroup Validator_Rules	 *	 * Given an array with regular expressions, validates that the string passed	 * as a parameter via the validate() method does not match any of the patterns.     */    class FilteredPatternsRule extends Rule    {		var $_filteredPatterns;		        /** 		 * Constructor. 	 	 * 		 * @param filteredPatterns Array containing the regular expressions to check, but please do not use the full format 	     * (i.e. if the pattern is "/^abc/" please do not specify the leading and trailing forward slashes as they will be 		 * automatically added later.		 * @caseSensitive Whether to treat patterns in a case-sensitive fashion or not.         */        function FilteredPatternsRule( $filteredPatterns, $caseSensitive = DEFAULT_PATTERN_CASE_SENSITIVE )        {            $this->Rule();			$this->_caseSensitive = $caseSensitive;			$this->_filteredPatterns = $filteredPatterns;        }        /**         * @return Returns true if the case-sensitive mode is enabled or false otherwise         */        function isCaseSensitive()        {            return $this->_caseSensitive;        }        /**         * Sets the case sensitive mode.		 *		 * @param caseSensitive True to activate the case-sensitive mode or false otherwise         */        function setCaseSensitive( $caseSensitive = DEFAULT_PATTERN_CASE_SENSITIVE )        {            $this->_caseSensitive = $caseSensitive;        }        /**		 * Validates that none of the pattern matches the given string		 *		 * @param value The string to be checked		 * @return True if the string does not match any of the patterns or false otherwise         */        function validate($value)        {			foreach( $this->_filteredPatterns as $filteredPattern ) {				$regexp = "/^$filteredPattern\$/";				if( !$this->_caseSensitive )					$regexp .= "i";									$res = preg_match( $regexp, $value );				if( $res > 0 )					return false;	// no need to keep searching								}						return true;        }    }?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?