<?php

namespace Vendor\Func;

/**
* 常用的验证
* Class Verify
* @package Vendor\Func
*/
class Verify
{
/**
* 判断是否包含中文
* @param $str
* @return int
*/
public static function checkHasChinese($str)
{
$len = preg_match('/[\x{4e00}-\x{9fa5}]+/u',$str);
if ($len)
{
return true;
}
return false;
} /**
* 判断是否都是中文
* @param $str
* @return int
*/
public static function checkAllChinese($str)
{
$len = preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$str);
if ($len)
{
return true;
}
return false;
} /**
* 验证用户名
* @param $username
* @return bool
*/
public static function checkUserName($username)
{
$search = '/^[a-zA-Z][-_a-zA-Z0-9]{5,15}$/';
if (preg_match($search, $username)) {
return true;
} else {
return false;
}
} /**
* 验证手机号
* @param $tel
* @return bool
*/
public static function checkMobile($tel)
{
$search = '/^(1(([356][0-9])|(47)|[8][0-9]|[7][0-9]))\d{8}$/';
if (preg_match($search, $tel)) {
return true;
} else {
return false;
}
} /**
* 检测日期格式
* @param $date
* @return bool
*/
public static function checkDateFormat($date)
{
//匹配日期格式
if (preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', $date, $parts) && checkdate($parts[2], $parts[3], $parts[1])) {
return true;
}
else {
return false;
}
} /**
* 验证身份证号
* @param $IDCard
* @return bool
*/
public static function checkIDCard($IDCard)
{
$preg_card = '/^\d{17}[\d|x]$|^\d{15}$/i';
if (preg_match($preg_card, $IDCard)) {
return true;
} else {
return false;
}
} /**
* 验证银行卡
16-19 位卡号校验位采用 Luhn 校验方法计算:
第一步:把信用卡号倒序(61789372994)
第二步:取出倒序后的奇数位置上的号码, 相加等到总和s1。(eg:s1=6+7+9+7+9+4=42)
第三步:取出倒序后的偶数位置上的号码,每个号码乘以2。 (eg:2,16,6,4,18)
第四步:把第三步得到的大于10的号码转化为个位+十位。(eg:2,7,6,4,9)
第五步:把处理好的偶数位号码相加,得到s2。 (eg:s2=2+7+6+4+9=28)
第六步:判读(s1+s2)%10 == 0则有效,否则无效。(有效)
* @param $card
* @return bool
*/
public static function checkBank($card)
{
$card = str_replace(' ','',$card);
// step1 判断是否16到19位
$pattern = '/^\d{16,19}$/';
if (!preg_match($pattern,$card)) {
return false;
} // step2 luhn 算法校验
$len = strlen($card);
$sum = 0;
for ($i = 0; $i < $len ; $i++)
{
if (($i + $len) & 1)
{ // 奇数
$sum += ord($card[$i]) - ord('0');
}
else
{ // 偶数
$tmp = (ord($card[$i]) - ord('0')) * 2;
$sum += floor($tmp / 10) + $tmp % 10;
}
} return $sum % 10 === 0;
} /**
* 验证密码 6~16位,数字字母或下划线
* @param $pwd
* @return string
*/
public static function checkPwd($pwd){
$pattern= '/^[0-9a-z_]{6,16}$/i'; // i 不区分大小写
if(preg_match($pattern,$pwd)){
return true;
}else{
return false;
}
} /**
* 匹配价格,重量等正整数或正小数
* @param $num
* @return bool
*/
public static function checkDecimal($num) {
// 可以匹配1.11,10.11 或 0.11
if (preg_match('/^[1-9]+\d*(.\d{1,2})?$|^\d+.\d{1,2}$/',$num)) { // ? 0次或1次, + 1次或多次, * 0次或多次
return true;
} else {
return false;
}
} /**
* 匹配正整数
* @param $num
* @return bool
*/
public static function checkInteger($num) {
// 不能小于0
if (preg_match('/^[1-9]+\d*$/',$num)) { // ? 0次或1次, + 1次或多次, * 0次或多次
return true;
} else {
return false;
}
} /**
* 检测参数是否为数组
* @param $array
* @return string
*/
public static function checkArray($array){
if (is_array($array)) {
return true;
} else {
return false;
}
} /**
* 检测纳税人识别号
* 15位、17位、18或者20位码
* 字母全部大写
* @param $str
* @return string
*/
public static function checkTax($str){
$pattern= '/^[0-9A-Z]{15,20}$/'; // i 不区分大小写
if(preg_match($pattern,$str)){
return true;
}else{
return false;
}
}
}

php常用的验证的更多相关文章

  1. Struts2 验证框架 validation.xml 常用的验证规则

    validation.xml 的命名规则和放置路径: 文件名:<ActionClassName>-validation.xml <ActionClassName>就是要验证的A ...

  2. c#基类 常用数据验证的封装,数字,字符,邮箱的验证

    #region 常用数据验证的封装,数字字符的验证       /// <summary>       /// 常用数据验证的封装,数字字符的验证       /// </summa ...

  3. java 常用的验证方法帮助类

    import java.text.ParseException; import java.util.Collection; import java.util.Map; /** * 常用的验证方法帮助类 ...

  4. Swift - 正则表达式的使用(附用户名、邮箱、URL等常用格式验证)

    Swift虽然是一个新出的语言,但却不提供专门的处理正则的语法和类.所以我们只能使用古老的NSRegularExpression类进行正则匹配. 即先接受一个正则表达式的字符串,由此生成NSRegul ...

  5. 常用JS验证和函数

    下面是我常用一些JS验证和函数,有一些验证我直接写到了对象的属性里面了,可以直接通过对象.方法来调用 //浮点数除法运算 function fdiv(a, b, n) { if (n == undef ...

  6. 【vue】vue +element 搭建项目,el-input 常用的验证

    1.el-input 常用布局 <el-input class="filter-item dialog-search" size="small" @key ...

  7. Jquery常用正则验证

    常用校验的正则表达式var rulesConfig = { /** * str.replace(/^\s+|\s+$/g, '') 解析: str:要替换的字符串 \s : 表示 space ,空格 ...

  8. rails 常用的验证方法 validates (转)

    Agile Web Development with Rails 17.4 validation validate              在save的时候激活validate_on_create  ...

  9. Java常用正则表达式验证工具类RegexUtils.java

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexUtils{ /** * 正则表达式 ...

随机推荐

  1. GlusterFS集群文件系统研究

    https://blog.csdn.net/liuaigui/article/details/6284551 1.      GlusterFS概述GlusterFS是Scale-Out存储解决方案G ...

  2. 解决:一个项目中写多个包含main函数的源文件并分别调试运行

    自己在学c++的时候,一个项目中的多个cpp文件默认不允许多个main函数的出现,但是通过选项操作能够指定单个cpp文件进行运行,如下: 1.此时我就想运行第二个cpp文件,我们只需要把其他的两个右键 ...

  3. js遍历localStorage的键值对

    //遍历本地存储localStorage for (var i = 0; i < localStorage.length; i++) { var key = localStorage.key(i ...

  4. BZOJ 4477: [Jsoi2015]字符串树 可持久化trie树

    这个是真——可持久化字典树..... code: #include <bits/stdc++.h> #define N 100006 #define setIO(s) freopen(s& ...

  5. WinDbg常用命令系列---||(系统状态)

    ||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态. 使用形式 || System 参数 System 指定要显示的系统. 如果省略此参数,将显示正在调试 ...

  6. WinDbg常用命令系列---检查符号X

    x (Examine Symbols) x命令在所有与指定模式匹配的上下文中显示符号. x [Options] Module!Symbol x [Options] * 参数: Options特定符号搜 ...

  7. tldr/cheat

    tldr 比man好用的查询命令查询工具, man很强大,但是 TLDR,too long dont read 安装 npm install -g tldr 使用说明 其他版本下载 https://g ...

  8. HAVING 搜索条件在进行分组操作之后应用

    HAVING 搜索条件在进行分组操作之后应用: 如:查询帖子访问量大于15的用户id: select t.user_id,u.name,sum(count_view) from t_topic t l ...

  9. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  10. Cocos Creator打包发布

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理. 请点赞!因为你们的赞同/鼓励是我写作的最大动力! 欢迎关注达叔小生的简书! 这是一个有质量 ...