<?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. SQL操作Spark SQL--CatalogApiTest

    object CatalogApiTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() ...

  2. C# 反射(转)

    什么是反射 Reflection,中文翻译为反射.        这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’.‘模块(Module)’.‘类型 ...

  3. Build Post Office

    Description Given a 2D grid, each cell is either an house 1 or empty 0 (the number zero, one), find ...

  4. Goexit

    package main import ( "fmt" "runtime" ) func test() { defer fmt.Println("cc ...

  5. learning java 转换流

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...

  6. [Gradle] 发布 library 到本地 maven 仓库

    Java Library // publish_local_java.gradle apply plugin: 'maven-publish' publishing { publications { ...

  7. GoCN每日新闻(2019-10-02)

    GoCN每日新闻(2019-10-02) GoCN每日新闻(2019-10-02) 1. Golang中基于Gin和Casbin的web使用方式 https://dev.to/maxwellhertz ...

  8. Spark-Streaming kafka count 案例

    Streaming 统计来自 kafka 的数据,这里涉及到的比较,kafka 的数据是使用从 flume 获取到的,这里相当于一个小的案例. 1. 启动 kafka Spark-Streaming ...

  9. mysql 创建时间字段

    alter table table1 add order_date datetime null; mysql> select * from table1; +----------+------- ...

  10. Dubbo+zookeeper实现单表的增删改查

    1.数据库准备 建表语句 CREATE TABLE `tb_brand` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL COMMENT ...