<?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. 神奇的 Object.defineProperty 解释说明

    原文 : https://segmentfault.com/a/1190000004346467?utm_source=tuicool&utm_medium=referral 这个方法了不起啊 ...

  2. 手机代理调试Charles Proxy和Fiddler

    一.Charles Proxy Charles是一个HTTP代理/HTTP监控/反向代理的工具. 使用它开发者可以查看设备的HTTP和SSL/HTTPS网络请求.返回.HTTP头信息 (cookies ...

  3. [转]windows10下安装与激活rational rose 2003

    Rational Rose2003安装+激活教程(Win10)(另附安装包+激活软件) 原文链接:https://blog.csdn.net/qq_38388811/article/details/8 ...

  4. [ARIA] Add aria-expanded to add semantic value and styling

    In this lesson, we will be going over the attribute aria-expanded. Instead of using a class like .op ...

  5. shell脚本编程基础之自定义函数库

    脚本编程知识点 ${#VAR_NAME}:引用变量中字符的长度 A="25 90 100 120": echo ${A#* }:针对A变量,#表示从左往右,*空格表示以空格为分隔符 ...

  6. vue引入nutUI

    这段时间需要做一个移动端项目,我需要选着用哪个UI库,其它的UI库没多看,看了看mintUI和nutUI,感觉mintUI的功能要比nutUI的功能少点,mintUI是饿了么团队开发的,而nutUI是 ...

  7. Connection to newtaotao failed. [08001] Could not create connection to database

    jdbc.url=jdbc:mysql://localhost:3306/newtaotao?serverTimezone=UTC&characterEncoding=utf-8 数据库是5. ...

  8. 【洛谷】P4198 楼房重建(线段树)

    传送门 分析 被线段树按在地上摩擦  先把左边转化成斜率,那么这个题就转化成每次修改一个点的值,输出前缀最大值的个数 看到标签是线段树,所以还是想想线段树的做法吧 既然是线段树,那么就要将区间分成两半 ...

  9. pycharm plot独立窗口显示

    import matplotlib.pyplot as plt ... plt.show() 进行如下设置: File->Settings->Tools->Python Scient ...

  10. 【Excel】多条件查找

    例如下图:要求在单元格从C10中根据分类与名称找出相应的数量 1.VLOOKUP函数(数组公式) {=VLOOKUP(A10&B10,IF({1,0},A2:A6&B2:B6,C2:C ...