<?php
/**
* 1.正则匹配中文(UTF8)+英文+数字
* 符号、空格不能通过
*/
$str = "sd的123";
if(preg_match("/^([\x{4e00}-\x{9fa5}]|[0-9a-zA-Z])+$/u",$str)){
echo '通过';
}else{
echo '不通过';
}
/**
* 2.验证m-n位的数字的PHP正则:^\d{m,n}$
* 例:取6到12位数字
*/
$str = '12345678';
if(preg_match('/^\d{6,12}$/i',$str)){
echo '6到12位数字';
}else{
echo '不是6到12位数字';
}
/**
* 3.常用数字正则
* 验证数字: ^[0-9]*$
* 验证n位的数字: ^\d{n}$
* 验证至少n位数字: ^\d{n,}$
* 验证m-n位数字: ^\d{m,n}$
* 验证零和非零开头的数字: ^(0|[1-9][0-9]*)$
* 验证有两位小数的正实数: ^[0-9]+(.[0-9]{2})?$
* 验证有1-3位小数的正实数: ^[0-9]+(.[0-9]{1,3})?$
* 验证非零的正整数: ^\+?[1-9][0-9]*$
* 验证非零的负整数: ^\-?[1-9][0-9]*$
* 验证非负整数(正整数+0): ^\d+$
* 验证费正整数(负整数+0): ^((-\d+)|(0+))$
* 验证长度为3的字符: ^.{3}$
* 验证由26个英文字母组成的字符串: ^[A-Za-z]+$
* 验证由26个大写英文字母组成的字符串: ^[A-Z]+$
* 验证有26个小写英文字母组成的字符串: ^[a-z]+$
* 验证由数字和26个英文字母组成的字符串: ^[A-Za-z0-9]+$
* 验证由数字英文字母或下划线组成的字符串:^\w+$
* 验证用户密码: ^[a-zA-Z]\w{5,17}$=>字母开头,6-18位,只能包含字母、数字、下划线
* 验证时候含有^%&,;=?$等字符 [^%&,;=?$\x22]+
* 验证汉字 ^[\u4e00-\u9fa5],{0,}$
* 验证Email地址: ^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
* 验证InternetURI ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
* 验证电话号码: ^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX
* 验证身份证号(15或18位数字):^\d{15}|\d{18}$
* 验证一年的12个月: ^(0?[1-9]|1[0-2])$ 正确格式:"01"-"09"和"1"-"12"
* 验证一个月的31天: ^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式:01-08和1,31
* 整数: ^-?\d+$
* 非负浮点数(正浮点数+0): ^\d+(\.\d+)?$
* 负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
* 浮点数: ^(-?\d+)(\.\d+)?$
*/
/*---------------------正则简写------------------------------------------*/
/**
* \d [0-9]
* \w [A0Zz-z0-9]
* \s 空白字符,空格符、Tab、回车、\r\n
* 字符缩写形式可以用在方括号之内或之外
* \s\d 空白字符后面紧跟一个数字
* [\s\d] 单个字符或数字
* [\da-fA-F] 十六进制数字
*取反字符集简写
* [\S] [^\s]
* [\W] [^\w]
* [\D] [^\d]
*/
/**--------------------日期格式----------------------------------*
* (19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])
* (19|20)[0-9]{2} 19或20开头,0~9重复两次。匹配1900~2099
* [-/.] 时间分隔符,匹配"-","空格","/","."
* (0[1-9]|1[012]) 匹配01~12,匹配月份
* (0[1-9]|[12][0-9]|3[01])01~09,10~29,30,31
*/
/**--------------------身份证----------------------------------*
* 格式: 首6位为地方码
* 7-14位为出生日期码
* 15-18位为顺序编码,用于同年同月同日同地方出生的人
* 17位为GENDER码,男单数,女双数
* 正确格式:XXXXX19000000XXXX ~ XXXXXX20991234XXXX
* 正则:\d{6} (?:19|20) \d{2} (?:0[1-9]|1[0-2]) (?:0[1-9]|[12]\d|3[01]) \d{4}
*/
?>