首页 > Web开发 > 详细

ThinkPHP自带的验证规则

时间:2019-12-09 12:02:32      阅读:55      评论:0      收藏:0      [点我收藏+]

有时候验证器不太好用,比如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地址

用之前,请看懂!

 

ThinkPHP自带的验证规则

原文:https://www.cnblogs.com/xuweiqiang/p/12009649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!