php表单习惯用的正则表达式


Posted in PHP onOctober 11, 2017

php表单常用正则表达式,代码如下所示:

function is_email($str){ 
//检验email 
return preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $str); 
} 
function is_url($str){ 
//检验网址 
return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"]) 
*$/", $str); 
} 
function is_qq($str){ 
//检验qq 
return preg_match("/^[1-9]\d{4,8}$/", $str); 
} 
function is_zip($str){ 
//检验邮编 
return preg_match("/^[1-9]\d{5}$/", $str); 
} 
function is_idcard($str){ 
//检验身份证 
return preg_match("/^\d{15}(\d{2}[A-Za-z0-9])?$/", $str); 
} 
function is_chinese($str){ 
检验是否是中文 
return ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str); 
} 
function is_english($str){ 
//检验是否是英文 
return preg_match("/^[A-Za-z]+$/", $str); 
} 
function is_mobile($str){ 
//检验是否是手机 
return preg_match("/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/", $str); 
} 
function is_phone($str){ 
//建云那是否是电话 
return preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/", 
$str); 
} 
function is_safe($str){ 
return (preg_match("/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|. 
{0,5})$|\s/", $str) != 0); 
} 
}

PS:下面再给大家分享一段代码

<?php
/**
* @description: 正则表达式匹配
*/
class Regex {
/**
* @手机号
*/
public static function Phone($subject) {
$pattern='/^(0|86|17951)?(13[0-9]|15[012356789]|1[78][0-9]|14[57])[0-9]{8}$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @数字
*/
public static function Number($subject) {
$pattern='/^[0-9]+$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @年份 格式:yyyy
*/
public static function Year($subject) {
$pattern='/^(\d{4})$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @月份 格式:mm
*/
public static function Month($subject) {
$pattern='/^0?([1-9])$|^(1[0-2])$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @日期 格式:yyyy-mm-dd
*/
public static function Day($subject) {
$pattern='/^(\d{4})-(0?\d{1}|1[0-2])-(0?\d{1}|[12]\d{1}|3[01])$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @日期时间 格式:yyyy-mm-dd hh:ii:ss
*/
public static function DateTime($subject) {
$pattern='/^(\d{4})-(0?\d{1}|1[0-2])-(0?\d{1}|[12]\d{1}|3[01])\s(0\d{1}|1\d{1}|2[0-3]):[0-5]\d{1}:([0-5]\d{1})$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @邮箱
*/
public static function Email($subject) {
$pattern='/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @邮编
*/
public static function Postcode($subject) {
$pattern='/[1-9]\d{5}(?!\d)/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @有效图片地址
*/
public static function Photo($subject) {
$pattern='/\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @URL地址
*/
public static function UrlAddress($subject) {
$pattern='/\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @有效HTTP地址
*/
public static function EffectiveHttp($subject) {
$pattern='/\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @身份证
*/
public static function Identity($subject) {
$pattern='/(^\d{15}$)|(^\d{17}([0-9]|X)$)/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @IPv4
*/
public static function Ipv4($subject) {
$pattern='/^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @IPv6
*/
public static function Ipv6($subject) {
$pattern='/^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$/';
return Regex::PublicMethod($pattern, $subject);
}
/**
* @匹配正则公共方法
*/
public static function PublicMethod($pattern, $subject){
if(preg_match($pattern, $subject)){
return true;
}
return false;
}
}

好了,内容就这么多少,希望对大家有所帮助!

PHP 相关文章推荐
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
php牛逼的面试题分享
Jan 18 PHP
php curl模拟post提交数据示例
Dec 31 PHP
php去除字符串换行符示例分享
Feb 13 PHP
php使用PDO方法详解
Dec 27 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
CI框架简单分页类用法示例
Jun 06 PHP
PHP哈希表实现算法原理解析
Dec 11 PHP
彻底搞懂PHP 变量结构体
Oct 11 #PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 #PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 #PHP
laravel migrate初学常见错误的解决方法
Oct 11 #PHP
Laravel学习基础之migrate的使用教程
Oct 11 #PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 #PHP
Laravel中的Blade模板引擎示例详解
Oct 10 #PHP
You might like
php+ajax实现无刷新分页的方法
2014/11/04 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python中退出多层循环的方法
2018/11/27 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
社会治安综合治理管理责任书
2014/04/16 职场文书
大学社团活动总结
2014/04/26 职场文书
促销活动计划书
2014/05/02 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
颐和园的导游词
2015/01/30 职场文书
英语通知范文
2015/04/22 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers