正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,方便以后我们在开发中进行表单验证、字符串查找什么的。
6、匹配地区邮编的正则表达式
匹配邮编规则:
六位数字,第一位不能为0
/**
* @param $pos string 邮编号码
* @return string 结果
*/
function pregPOS($pos)
{
$rule = '/^[1-9]\d{5}$/';
if (preg_match($rule, $pos, $result)) {
return $result;
} else {
return "不匹配!";
}
}
7、匹配IP地址的正则表达式
匹配ip规则:
**1.**2.**3.**4**1可以是一位的 1-9,两位的01-99,三位的001-255**2和**3可以是一位的0-9,两位的00-99,三位的000-255**4可以是一位的 1-9,两位的01-99,三位的001-255四个参数必须存在。
/**
* @param $ip string ip地址
* @return string 结果
*/
function pregIP($ip)
{
$rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))))\.)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5])))\.){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';
if (preg_match($rule, $ip, $result)) {
return $result;
} else {
return "不匹配!";
}
}
8、匹配时间格式的正则表达式
匹配时间规则:
形式可以为:年-月-日 小时:分钟:秒,年-月-日 小时:分钟,年-月-日:年:1或2开头的四位数,月:1位1到9的数;0或1开头的两位数,0开头的时候个位数是1到9的数,1开头的时候个位数是1到2的数日:1位1到9的数;0或1或2或3开头的两位数,0开头的时候个位数是1到9的数,1或2开头的时候个位数是0到9的数,3开头的时候个位数是0或1小时:0到9的一位数;0或1开头的两位数,个位是0到9;2开头的两位数,个位是0-3分钟:0到9的一位数;0到5开头的两位数,个位是0到9;分钟:0到9的一位数;0到5开头的两位数,各位是0到9。
/**
* @param $time string 时间
* @return string 结果
*/
function pregTime($time)
{
$rule = '/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';
if (preg_match($rule, $time, $result)) {
return $result;
} else {
return "不匹配!";
}
}
9、utf8下匹配中文的正则表达式
/**
* @param $chinese string utf8格式中文字
* @return string 结果
*/
function pregChinese($chinese)
{
$rule = '/([\x{4e00}-\x{9fa5}]){1}/u';
if (preg_match($rule, $chinese, $result)) {
return $result;
} else {
return "不匹配!";
}
}