ThinkPHP自带的验证规则


有时候验证器不太好用,比如PHP的 is_int 无法验证数字字符串,会返回bool(false),而  /^[1-9]\d*$/ 能精准验证是否正整数,(当然PHP自带的 filter_var 也会通过 ' 123' )所以从比较流行框架搬一些正则来做验证器,正则才是最精准的验证。

仅做笔记 - 自用

ThinkPHP内部的验证规则:

<?php

$regex = array(
    'require'=> '/.+/', //匹配任意字符,除了空和断行符
    'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
    'phone' => '/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/',//电话号码
    'mobile' => '/^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/',//手机号码
    'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/',//超链接
    'currency' => '/^\d+(\.\d+)?$/',//货币
    'number' => '/\d+$/',
    'qq' => '/^[1-9]\d{4,12}$/',
    'integer' => '/^[-\+]?\d+$/',//整数
    'double' => '/^[-\+]?\d+(\.\d+)?$/',//浮点数
    'english' => '/^[A-Za-z]+$/',//英文字符
    'birthday'=>'/^\d{4}\-\d{1,2}-\d{1,2}$/',//生日,虽然本人更喜欢strtotime验证是否日期格式

);
[\u4e00-\u9fa5] //匹配中文字符的正则表达式
[^\x00-\xff] //匹配双字节字符(包括汉字在内)
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //匹配Email地址的正则表达式
[a-zA-z]+://[^\s]* //匹配网址URL的正则表达式
\d{3}-\d{8}|\d{4}-\d{7} //匹配国内电话号码
[1-9]\d{5}(?!\d) //匹配中国邮政编码
\d+\.\d+\.\d+\.\d+ //匹配ip地址
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
[\u4e00-\u9fa5] //匹配中文字符的正则表达式
[^\x00-\xff] //匹配双字节字符(包括汉字在内)
\n\s*\r //匹配空白行的正则表达式-可用于删除空白行
^\s*|\s*$ //匹配首尾空白字符的正则表达式-可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)-也可以使用trim函数
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //匹配Email地址的正则表达式
[a-zA-z]+://[^\s]* //匹配网址URL的正则表达式
评注:表单验证时很实用
\d{3}-\d{8}|\d{4}-\d{7} //匹配国内电话号码-固定电话
[1-9][0-9]{4,} //腾讯QQ号从10000开始
[1-9]\d{5}(?!\d) //匹配中国邮政编码
\d{15}|\d{18} //匹配身份证
\d+\.\d+\.\d+\.\d+ //匹配ip地址

用之前,请看懂!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM