PHP匹配当前传入是何种类型
本文出至:新太潮流网络博客
/**
* [is_string_regular_type 正则自动验证传入数据]
* @E-mial wuliqiang_aa@163.com
* @TIME 2017-08-25
* @WEB http://blog.iinu.com.cn
* @param [string] $keyword [传入的关键字要检索的范围]
* @param [string] $string [需要用正则匹配的内容]
* @return boolean [返回数组状态]
*/
function is_string_regular_type($keyword,$string){
$type_array = array(
//邮箱正则
'email' => [ 'type' => '/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/'],
//用户名
'username' => [ 'type' => '/^\w+((-\w+)|(\.\w+))*[0-9a-zA-Z_]/' , 'number' => '/^\w+((-\w+)|(\.\w+))*[0-9a-zA-Z_]{6,20}/'],
//密码
'password' => [ 'type' => '/^[0-9a-zA-Z_]{6,20}$/']
);
$return_str_success = array(
'email' => ['type'=>'邮箱格式正确'],
'username' => ['type'=>'用户名格式正确','number'=>'用户名长度正确'],
'password' => ['type'=>'密码格式正确']
);
$return_str_error = array(
'email' => ['type'=>'邮箱格式不正确'],
'username' => ['type'=>'用户名格式不正确','number'=>'用户名长度不正确'],
'password' => ['type'=>'密码格式不正确']
);
//用于匹配是否存在该键
foreach($type_array as $k=>$v){
$type_array_if[] = $k;
}
if(in_array($keyword,$type_array_if)){
foreach($type_array[$keyword] as $k=>$v){
//正则比配
$preg_match_chek = preg_match($type_array[$keyword][$k],$string);
}
if($preg_match_chek == 1){
//匹配成功
return array('status'=>$preg_match_chek,'result'=>$return_str_success[$keyword][$k],'message'=>$string);
}else{
//匹配失败
return array('status'=>$preg_match_chek,'result'=>$return_str_error[$keyword][$k],'message'=>$string);
}
}else{
return array('status'=>1,'result'=>'不存在此验证方法','message'=>$string);
}
}
本文出至:新太潮流网络博客
PHP匹配当前传入是何种类型的更多相关文章
- java使用何种类型表示精确的小数?
问题 java使用何种类型表示精确的小数? 结论 float和double类型的主要设计目标是为了科学计算和工程计算,速度快,存在精度丢失 BigDecimal用来表示任意精确浮点数运算的类,在商业应 ...
- MyBatis的传入参数parameterType类型
1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,string,long,Date; 1. 2. 复杂数据类型:类和Map 2. 如何获取参数中的值 ...
- MyBatis中传入参数parameterType类型详解
前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型.本文主要给大家 ...
- 利用传入的Type类型来调用范型方法的解决方案
起因:自定义一个GridView控件,其数据源来源于一个通用方法Get<T>(),根据你传入的T到数据库中得到相应的数据,问题是定义GridView控件时没法在界面端设置使用泛型,只能在每 ...
- mybatis将传入的Integer类型的0被识别成空字符串的问题
更改mapper文件的sql如下: <if test="interger != null"> interger= #{interger} </if> 原因: ...
- 插入数据insert语句中出错:没有与这些操作数匹配的“+”运算符,操作数类型为:const char[ ]+CString
UpdateData(); CString n; n.Format(L"%d", m_n); _bstr_t strCmd_n = "insert into n(材料,折 ...
- JS 判断传入的变量类型是否是Array
function f(arr){ 1.通过_proto_ 进行判断 (arr._proto_ 指向Array.prototype); 2.通过constructor进行判断 (arr.construc ...
- Collections带有的排序方法 传入的元素类型 需是子类或者这个类的实例
- 后台传入的boolean类型到前台alert为String类型了(解决方法)
后台代码: // 进入仪器list界面之前查看 是否是科研处人员 SessionContainer sc = (SessionContainer) session.getAttribut ...
随机推荐
- 工具类APP
应用名称 工具S 英文名称 未填写 应用描述 工具类APP 英文描述 未填写 应用官网 this 应用图标
- linux下清空c++ cin无效流的方式
cin.clear(); cin.ignore(10000,'\n');//这里面的参数很重要
- mysql空间扩展 VS PostGIS
http://www.cnblogs.com/LBSer/p/3629149.html 功能 Mysql spatial extension PostGIS 空间索引 仅MyISAM支持R树索引,I ...
- springMVC实现json
很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互. 一.概要 JSON(JavaScri ...
- MJRefresh源码框架分析
MJRefresh是一款非常优秀的刷新控件.代码简洁,优雅.今天有时间对源代码阅读了一下.对MJRefresh的宏观设计非常赞叹.所谓大道至简就是这样吧. MJRefresh所采用的主要设计模式非 ...
- Qt5 编程基础
Qt 是一个C++ GUI应用框架,Qt 具有良好的可移植性支持大多数桌面和移动操作系统并常用于嵌入式开发. Qt的发行版分为商业版和开源版,提供了Qt Creator作为轻量级IDE. Hello ...
- APPCAN的mas服务报错
报错信息 主要是: [meap_im_java]load java warning { [Error: Cannot find module 'java'] code: 'MODULE_NOT_FOU ...
- [日常] nginx访问频率限制
去年的事,随便记记 ========================================================================= 2017年3月15日 记录: n ...
- 前端(十):使用redux管理数据
react本身能够完成动态数据的监听和更新,如果不是必要可以不适用redux. 安装redux: cnpm install redux --save,或者yarn add redux. 一.react ...
- 数组元素的移动(删除) C#实现
下面有四个问题: 把数组元素前后部分交换 MoveFirstPartOfArrayToTheEnd(int[] array, int index) 比如 {1,2,3,4,5,6,7} 3 => ...