Maison > Article > développement back-end > 常用的php各种验证正则表达式程序_PHP教程
常用的php各种验证正则表达式程序
代码如下 | 复制代码 |
class validator { /** * Checks that a field is exactly the right length. * Constructer PHP4 */ function validator() { } /** * check a number optional -,+,. values * @param string * @return boolean */ function is_numeric($val) { return (bool)preg_match('/^[-+]?[0-9]*.?[0-9]+$/', $val); } /** * valid email * @param string * @return boolean */ function is_email($val) { return (bool)(preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/i", $val)); } /** * Valid URL or web address * @param string * @return boolean */ function is_url($val) { return (bool)preg_match("^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,][[:blank:]])?$", $val); } /** * Valid IP address * @param string * @return boolean */ function is_ipaddress($val) { return (bool)preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $val); } /** * Matches only alpha letters * @param string * @return boolean */ function is_alpha($val) { return (bool)preg_match("/^([a-zA-Z])+$/i", $val); } /** * Matches alpha and numbers only * @param string * @return boolean */ function is_alphanumeric($val) { return (bool)preg_match("/^([a-zA-Z0-9])+$/i", $val); } /** * Matches alpha ,numbers,-,_ values * @param string * @return boolean */ function is_alphanumericdash($val) { return (bool)preg_match("/^([-a-zA-Z0-9_-])+$/i", $val); } /** * Matches alpha and dashes like -,_ * @param string * @return boolean */ function is_alphadash($val) { return (bool)preg_match("/^([A-Za-z_-])+$/i", $val); } /** *Matches exactly number * @param string * @return boolean */ function is_integer($val) { return is_int($val); } /** * Valid Credit Card * @param string * @return boolean */ function is_creditcard($val) { return (bool)preg_match("/^((4d{3})|(5[1-5]d{2})|(6011)|(7d{3}))-?d{4}-?d{4}-?d{4}|3[4,7]d{13}$/", $val); } /** * check given string length is between given range * @param string * @return boolean */ function is_rangelength($val, $min = '', $max = '') { return (strlen($val) >= $min and strlen($val) } /** *Check the string length has minimum length * @param string * @return boolean */ function is_minlength($val, $min) { return (strlen($val) >= (int)$min); } /** * check string length exceeds maximum length * @param string * @return boolean */ function is_maxlength($val, $max) { return (strlen($val) } /** * check given number exceeds max values * @param string * @return boolean */ function is_maxvalue($number,$max) { return ($number >$max); } /** * check given number below value * @param string * @return boolean */ function is_minvalue($number) { return ($number } /** * check given number between given values * @param string * @return boolean */ function is_rangevalue($number,$min,$max) { return ($number >$min and $number } /** * check for exactly length of string * @param string * @return boolean */ function is_length($val, $length) { return (strlen($val) == (int)$length); } /** * check decimal with . is optional and after decimal places up to 6th precision * @param string * @return boolean */ function is_decimal($val) { return (bool)preg_match("/^d+(.d{1,6})?$/'", $val); } /** * Valid hexadecimal color ,that may have #, * @param string * @return boolean */ function is_hexcolor($color) { return (bool)preg_match('/^#?+[0-9a-f]{3}(?:[0-9a-f]{3})?$/i', $color); } /** * Matches againest given regular expression ,including delimeters * @param string * @return boolean */ function is_regex($val, $expression) { return (bool)preg_match($expression, (string )$val); } /** * compares two any kind of values ,stictly * @param string * @return boolean */ function is_matches($val, $value) { return ($val === $value); } /** * check if field empty string ,orject,array * @param string * @return boolean */ function is_empty($val) { return in_array($val, array(null, false, '', array()), true); } /** * Check if given string matches any format date * @param string * @return boolean */ function is_date($val) { return (strtotime($val) !== false); } /** * check given string againest given array values * @param string * @return boolean */ function is_enum($val, $arr) { return in_array($val, $arr); } /** * Checks that a field matches a v2 md5 string * @param string * @return boolean */ function is_md5($val) { return (bool)preg_match("/[0-9a-f]{32}/i", $val); } /** * Matches base64 enoding string * @param string * @return boolean */ function is_base64($val) { return (bool)!preg_match('/[^a-zA-Z0-9/+=]/', $val); } /** * check if array has unique elements,it must have minimum one element * @param string * @return boolean */ function is_unique($arr) { $arr = (array )$arr; $count1 = count($arr); $count2 = count(array_unique($arr)); return (count1 != 0 and (count1 == $count2)); } /** * Check is rgb color value * @param string * @return boolean */ function is_rgb($val) { return (bool)preg_match("/^(rgb(s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*))|(rgb(s*(d?d%|100%)+s*,s*(d?d%|100%)+s*,s*(d?d%|100%)+s*))$/", $val); } /** * is given field is boolean value or not * @param string * @return boolean */ function is_boolean($val) { $booleans = array(1, 0, '1', '0', true, false, true, false); $literals = array('true', 'false', 'yes', 'no'); foreach ($booleans as $bool) { if ($val === $bool) return true; } return in_array(strtolower($val), $literals); } /** * A token that don't have any white space * @param string * @return boolean */ function is_token($val) { return (bool)!preg_match('/s/', $val); } /** * Checks that a field is exactly the right length. * @param string value * @link http://php.net/checkdnsrr not added to Windows until PHP 5.3.0 * @return boolean */ function is_emaildomain($email) { return (bool)checkdnsrr(preg_replace('/^[^@]++@/', '', $email), 'MX'); } /** * Matches a phone number that length optional numbers 7,10,11 * @param string * @return boolean */ function is_phone($number, $lengths = null) { if (!is_array($lengths)) { $lengths = array(7, 10, 11); } $number = preg_replace('/D+/', '', $number); return in_array(strlen($number), $lengths); } /** * check given sting is UTF8 * @param string * @return boolean */ function is_utf8($val) { return preg_match('%(?: [xC2-xDF][x80-xBF] |xE0[xA0-xBF][x80-xBF] |[xE1-xECxEExEF][x80-xBF]{2} |xED[x80-x9F][x80-xBF] |xF0[x90-xBF][x80-xBF]{2} |[xF1-xF3][x80-xBF]{3} |xF4[x80-x8F][x80-xBF]{2} )+%xs', $val); } /** * Given sting is lower cased * @param string * @return boolean */ function is_lower($val) { return (bool)preg_match("/^[a-z]+$/", $val); } /** * Given string is upper cased? * @param string * @return boolean */ function is_upper($val) { return (bool)preg_match("/^[A-Z]+$/", $val); } /** * Checks that given value matches following country pin codes. * at = austria * au = australia * ca = canada * de = german * ee = estonia * nl = netherlands * it = italy * pt = portugal * se = sweden * uk = united kingdom * us = united states * @param String * @param String * @return boolean */ function is_pincode($val, $country = 'us') { $patterns = array('at' => '^[0-9]{4,4}$', 'au' => '^[2-9][0-9]{2,3}$', 'ca' => '^[a-zA-Z].[0-9].[a-zA-Z].s[0-9].[a-zA-Z].[0-9].', 'de' => '^[0-9]{5,5}$', 'ee' => '^[0-9]{5,5}$', 'nl' => '^[0-9]{4,4}s[a-zA-Z]{2,2}$', 'it' => '^[0-9]{5,5}$', 'pt' => '^[0-9]{4,4}-[0-9]{3,3}$', 'se' => '^[0-9]{3,3}s[0-9]{2,2}$', 'uk' => '^([A-Z]{1,2}[0-9]{1}[0-9A-Z]{0,1}) ?([0-9]{1}[A-Z]{1,2})$', 'us' => '^[0-9]{5,5}[-]{0,1}[0-9]{4,4}$'); if (!array_key_exists($country, $patterns)) return false; return (bool)preg_match("/" . $patterns[$country] . "/", $val); } /** * Check given url really exists? * @param string * @return boolean */ function is_urlexists($link) { if (!$this->is_url($link)) return false; return (bool)@fsockopen($link, 80, $errno, $errstr, 30); } /** * Check given sting has script tags * @param string * @return boolean */ function is_jssafe($val) { return (bool)(!preg_match("/<script>]*>[srn]*(<!--)?|(-->)?[srn]*</script>/", $val)); } /** * given sting has html tags? * @param string * @return boolean */ function is_htmlsafe($val) { return (bool)(!preg_match("/.*$1>/", $val)); } /** * check given sring has multilines * @param string * @return boolean */ function is_multiline($val) { return (bool)preg_match("/[nrt]+/", $val); } /** * check given array key element exists? * @param string * @return boolean */ function is_exists($val, $arr) { return isset($arr[$val]); } /** * is given string is ascii format? * @param string * @return boolean */ function is_ascii($val) { return !preg_match('/[^x00-x7F]/i', $val); } /** * Checks given value again MAC address of the computer * @param string value * @return boolean */ function is_macaddress($val) { return (bool)preg_match('/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/', $val); } /** * Checks given value matches us citizen social security number * @param string * @return boolean */ function is_usssn($val) { return (bool)preg_match("/^d{3}-d{2}-d{4}$/", $val); } /** * Checks given value matches date de * @param string * @return boolean */ function is_dateDE($date) { return (bool)preg_match("/^dd?.dd?.ddd?d?$/", $date); } /** * Checks given value matches us citizen social security number * @param string * @return boolean */ function is_dateISO($date) { return (bool)preg_match("/^d{4}[/-]d{1,2}[/-]d{1,2}$/", $date); } /** * Checks given value matches a time zone * +00:00 | -05:00 * @param string * @return boolean */ function is_timezone($val) { return (bool)preg_match("/^[-+]((0[0-9]|1[0-3]):([03]0|45)|14:00)$/", $val); } /** * Time in 24 hours format with optional seconds * 12:15 | 10:26:59 | 22:01:15 * @param string * @return boolean */ function is_time24($val) { return (bool)preg_match("/^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/", $val); } /** * Time in 12 hours format with optional seconds * 08:00AM | 10:00am | 7:00pm * @param string * @return boolean */ function is_time12($val) { return (bool)preg_match("/^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9][aApP][mM]){1}$/", $val); } } |