Reguliere Expressies is een manier om patronen te valideren.
Alleen letters :
function valid_alpha ($value) { return preg_match("/^[a-z]+$/i", $value); }
Alleen letters en nummers :
function valid_alpha_num ($value) { return preg_match("/^[a-z0-9]+$/i", $value); }
Een boolean 0, 1 of true, false :
function valid_boolean ($value) { return preg_match("/^true$|^1|^false|^0$/i", $value); }
Alleen nummmers :
function valid_digit ($value) { return (bool) preg_match("/^[0-9]+$/", $value); }
Een Nederlandse postcode (e.g. 1234 AA) :
function valid_dutch_postcode ($value) { return preg_match('/^[1-9][0-9]{3} ?[a-zA-Z]{2}$/', $value); }
Een Nederlands telefoonnummer (e.g. 123-1234567) :
function valid_dutch_phone ($value) { $regex = '^[0-9]{2,4}[-]?[0-9]{6,8}$'; $value = str_replace(array(' ', '-'), array('', ''), $value); return (strLen($value) == 10 && eregi($regex, $value)); }
Een e-mail adres (e.g. xxx@xxx.xx) :
function valid_email ($value) { return preg_match("/^[a-z0-9_\.-]+@([a-z0-9]+([\-]+[a-z0-9]+)*\.)+[a-z]{2,7}$/i", $value); }
Een e-mail adres (e.g. xxx@xxx.xx) + controle op MX records :
function valid_email_host ($value) { $check = array(); if (eregi("^[0-9a-z_]([-_.]?[0-9a-z_])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$", $value, $check)) { $host = substr(strstr($check[0], '@'), 1)."."; if (function_exists('getmxrr')) { $tmp = null; if (getmxrr($host, $tmp)) { return true; } // this will catch dns that are not mx. if (checkdnsrr($host,'ANY')) { return true; } } else { return ($host != gethostbyname($host)); } } return false; }
Een bestandsnaam (punten zijn toegestaan, maar geen slashes of andere tekens) :
function valid_filename ($value) { return preg_match("{^[^\\/\*\?\:\,]+$}", $value); }
Alleen nummers, het minteken en een komma :
function valid_float ($value) { return (bool) preg_match("/^-?([0-9]*\.?,?[0-9]+)$/", $value); }
Alleen nummers en het minteken :
function valid_integer ($value) { return (bool) preg_match("/^-?[0-9]+$/", $value); }
Een IP-Adres e.g. xxx.xxx.xxx.xxx :
function valid_ip ($value) { return preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}:?\d*$/', $value); }
Alleen letters en cijfers, maar geen spaties (ASCII 33 - 126) :
function valid_password ($value) { return preg_match("/^[\41-\176]+$/", $value); }
Alle tekens, maar geen control tekens (ASCII 0 - 31) :
function valid_string ($value) { return preg_match("/^[^\x-\x1F]+$/", $value); }
Hetzelfde als valid_sting maar met newline tekens en tabs :
function valid_text ($value) { return preg_match("/^([^\x-\x1F]|[\r\n\t])+$/", $value); }
Een URL :
function valid_url ($value) { $regex = '/^((http|ftp|https):\/{2})?(([0-9a-zA-Z_-]+\.)+[a-zA-Z]+)((:[0-9]+)?)((\/([0-9a-zA-Z=%\.\/_-]+)?(\?[0-9a-zA-Z%\/&=_-]+)?)?)$/'; $result = preg_match( $regex, $value, $match ); return $result; }
Een URL + controle op http verbinding :
function valid_url_host ($href) { if (strlen($href) <= 3) { return false; } if (!preg_match("/^[a-z]+:/i", $href)) { $href = 'http://'.$href; } if (preg_match("/^http:\/\//", $href)) { $fp = @fopen($href, 'r'); if ($fp) { @fclose($fp); return true; } } return false; }
Opmerking : De functie eregi is DEPRECATED. (wordt gebruikt in valid_dutch_phone en valid_email_host).