<?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. mongodb 简单使用说明

    首先安装  mongodb软件地址 https://www.mongodb.org/downloads#production: 然后在 mongodb安装目录下找到bin 文件夹进去 在它的位置上按下 ...

  2. reshape()函数

    """ 1.当原始数组A[4,6]为二维数组,代表4行6列. A.reshape(-1,8):表示将数组转换成8列的数组,具体多少行我们不知道,所以参数设为-1.用我们的 ...

  3. go语言的坑

    go语言在for循环中遍历的临时变量地址是一样的 func main() { //SetLogConfToEtcd() for i := 0; i < 5; i++ { a := i fmt.P ...

  4. VSFTPD匿名用户上传文件

    1.安装vsftpd yum -y install vsftpd yum -y install ftp 客户端 2.编写配置文件 vim /etc/vsftpd/vsftpd.conf anonymo ...

  5. BZOJ 3672: [Noi2014]购票 树上CDQ分治

    做这道题真的是涨姿势了,一般的CDQ分治都是在序列上进行的,这次是把CDQ分治放树上跑了~ 考虑一半的 CDQ 分治怎么进行: 递归处理左区间,处理左区间对右区间的影响,然后再递归处理右区间. 所以, ...

  6. comlink 是来自google chrome 团队的简化webwokers 开发的类库

    comlink 可以帮助我们简单webworkers 的开发,同时很小(1.1kb),具体使用我们可以看下面 一张图  说明 comlink 使用起来也比较方便,官方也提供了完整的api 文档 参考资 ...

  7. 2017.10.4 国庆清北 D4T2 正方形

    题目描述 在一个10000*10000的二维平面上,有n颗糖果. LYK喜欢吃糖果!并且它给自己立了规定,一定要吃其中的至少C颗糖果! 事与愿违,LYK只被允许圈出一个正方形,它只能吃在正方形里面的糖 ...

  8. 设置多个className

    有时候我们需要有选择地设置多个className function myComponent(props) { const myClassName = { 'aaa', {'bbb': props.ne ...

  9. 《Java理解程序逻辑试题分析》

    1.以下关于开发java程序的描述错误的是 (). (选择一项) A:开发Java程序的步骤包括:编写源程序.编译.运行 B:编写的Java源程序文件使用 java作为扩展名 C:Java源文件经编译 ...

  10. 【CSP模拟赛】Freda的迷宫(桥)

    题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过.  黄昏 ...