Source for file AlphaValidator.inc
Documentation is available at AlphaValidator.inc
* Generic validation class used throughout the Alpha Framework
* @package alpha::util::helpers
* @author John Collins <dev@alphaframework.org>
* @version $Id: AlphaValidator.inc 1341 2011-03-17 15:02:02Z johnc $
* @license http://www.opensource.org/licenses/bsd-license.php The BSD License
* @copyright Copyright (c) 2011, John Collins (founder of Alpha Framework).
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the
* following conditions are met:
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
* * Neither the name of the Alpha Framework nor the names
* of its contributors may be used to endorse or promote
* products derived from this software without specific
* prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Allows any kind of input, including blanks
const ALLOW_ALL = '/.*/i';
const REQUIRED_DOUBLE = '/^-{0,1}[0-9\.]+$/';
const REQUIRED_INTEGER = '/^-{0,1}[0-9]*$/';
* Required text value, accepts a maximum of 65536 characters
const REQUIRED_TEXT = '/^[a-z\d\.,\'][a-z\d\.,\' ]{0,65535}$/i';
* Required string value, accepts a maximum of 255 characters
const REQUIRED_STRING = '/^[a-z\d\.,\'][a-z\d\.,\' ]{0,255}$/i';
* Required alphabet string
const REQUIRED_ALPHA = '/^[a-zA-Z]+$/';
* Required uppercase alphabet string
const REQUIRED_ALPHA_UPPER = '/^[A-Z]+$/';
* Required alpha-numeric string
const REQUIRED_ALPHA_NUMBEIC = '/^[a-zA-Z0-9]+$/';
* Required HTTP URL value
const REQUIRED_HTTP_URL = '/^(http:\/\/.*)$/i';
* Optional HTTP URL value
const OPTIONAL_HTTP_URL = '/^(http:\/\/.*\/.*)$|^([.*]{0})$/i';
* Required IP address value
const REQUIRED_IP = '/^(((([1-9])|([1-9][\d])|(1[\d]{2})|(2[0-4][\d])|(25[0-4]))(\.(([\d])|([1-9][\d])|(1[\d]{2})|(2[0-4][\d])|(25[0-4]))){3})|(0(\.0){3}))$/';
* Required email address value
const REQUIRED_EMAIL = '/^[-_.a-zA-Z0-9]+@((([a-zA-Z0-9]|[-_.a-zA-Z0-9]*[a-zA-Z0-9])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i';
* Required username (allows a-z A-Z 0-9 and -_. characters)
const REQUIRED_USERNAME = '/^[-_\.a-zA-Z0-9]*$/i';
* Required sequence value
const REQUIRED_SEQUENCE = '/^[A-Z]*-[0-9]*$/';
* Validate that the provided value is a valid integer
* Validate that the provided value is a valid double
public static function isDouble($value) {
* Validate that the provided value is a valid boolean (will accept 1 or 0 as valid booleans)
$acceptable = array(true, false, "true", "false", 1, 0, "1", "0");
if(!in_array($value, $acceptable, true))
* Validate that the provided value is a valid alphabetic string (strictly a-zA-Z)
public static function isAlpha($value) {
* Validate that the provided value is a valid alpha-numeric string (strictly a-zA-Z0-9)
if(preg_match(self::REQUIRED_ALPHA_NUMBEIC, $value))
* Validate that the provided value is a valid Sequence string ([A-Z]-[0-9])
* Validate that the provided value is a valid URL
public static function isURL($url) {
if(!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED))
* Validate that the provided value is a valid IP address
public static function isIP($ip) {
if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
* Validate that the provided value is a valid email address
|