精华内容
下载资源
问答
  • 常见数据校验规则

    千次阅读 2020-07-05 21:48:06
    import java.util.regex.... * 手机号的校验规则: * /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/ * * 邮箱的校验规则: * /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a.
    package com.test.easycheck;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 手机号的校验规则:
     * /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/
     *
     * 邮箱的校验规则:
     * /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/
     *
     *
     * 护照号的校验规则:
     * /^1[45][0-9]{7}$|(^[P|p|S|s]\d{7}$)|(^[S|s|G|g|E|e]\d{8}$)|(^[Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\d{8}$)|(^[H|h|M|m]\d{8,10}$)/
     *
     * 文字、英文字母、数字和下划线
     * /^[\u0391-\uFFE5\w]+$/,
     *
     * 二代身份证
     * ^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$
     *
     * 非特殊字符
     * [^#]+
     *
     * 至少一个数字或者字母
     * [a-zA-Z0-9]+
     *
     * 至少一个汉字
     * [\u4e00-\\u9fa5]+
     *
     * 是否为手机号码
     * /^1[3|4|5|6|7|8][0-9]{9}$/
     *
     * 是否全为数字
     * /^[0-9]+$/
     *
     * 是否为邮箱
     * /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
     *
     * 是否为身份证
     * /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
     *
     * 是否为Url
     * /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/
     *
     * 是否为IP
     * /((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/
     */
    public class UnifiedVerification {
        public static void main(String[] args){
            System.out.println(isMobilePhone("17865132151"));
        }
    
        private static boolean isMobilePhone(String phoneNumber){
            String pa = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
            return match(pa,phoneNumber);
        }
    
        /**
         * @param rex 正则校验规则
         * @param str 要校验的字符串
         * @return 返回校验结果,若满足校验规则,则返回true,否则返回false
         */
        private static boolean match(String rex, String str) {
            Pattern pattern = Pattern.compile(rex);
            Matcher matcher = pattern.matcher(str);
            return matcher.matches();
        }
    }
    

    更多内容请关注微信公众号“外里科技

    官方公众号外里科技
    运营公众号英雄赚
    微信wxid_8awklmbh1fzm22
    QQ1247408032
    开源代码https://gitee.com/B_T/beimi

     

    展开全文
  • 今天小编就为大家分享一篇laravel 数据验证规则详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • YII框架数据验证规则

    2015-12-07 04:46:48
    YII框架数据验证规则,各种详情的资料都在里面,yii最新表单验证规则
  • 数据校验规范

    2020-09-29 09:50:49
    "数据校验"是这个比较常见的工作,在日常的开发中贯穿于代码的各个层次,从上层的View层到下底层的数据层,为了保证程序的正确运行以及数据的正确性,开发者通常会在不同层次间做数据校验而且这些校验通常是重复的,...

    Bean Validation

    简介

    Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),已经经历了三个版本

    "数据校验"是这个比较常见的工作,在日常的开发中贯穿于代码的各个层次,从上层的View层到下底层的数据层,为了保证程序的正确运行以及数据的正确性,开发者通常会在不同层次间做数据校验而且这些校验通常是重复的,为了实现代码的复用性,通常会把校验的逻辑写在被校验对象上。

    Bean Validation就是为了解决这样的问题,它定义了一套元数据模型和API对JavaBean实现校验,默认是以注解作为元数据,可以通过XML重写或者拓展元数据,通常来说注解的方式可以实现比较简单逻辑的校验,而复杂校验就需要通过XML来描述。可以说Bean Validation是JavaBean的一个拓展,也就是说它布局于哪一层的代码,不局限于Web应用还是端应用。

    Bean Validation 2.0 关注点

    使用Bean Validation的最低Java版本为Java 8
    支持容器的校验,通过TYPE_USE类型的注解实现对容器内容的约束:List<@Email String>
    支持日期/时间的校验,@Past和@Future
    拓展元素数据:@Email,@NotEmpty,@NotBlank,@Positive, @PositiveOrZero,@Negative,@NegativeOrZero,@PastOrPresent和@FutureOrPresent

    Bean Validation的实现

    Bean Validation在2.0之前有两个官方认可的实现:Hibernate Validator和Apache BVal,但如果你想用2.0版本的话,基本上只有Hibernate Validator,而这里我使用的是Hibernate Validator,其他实现不做展开。

    使用

    安装依赖

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>3.0.1-b09</version>
    </dependency>
    

    Demo-直接使用
    一个简单的JavaBean

    public class User {
        private String name;
        private String gender;
        @Positive
        private int age;
        private List<@Email String> emails;// getter and setter 
        // ...
    }
    

    使用Validator校验

    User user = new User();
    ​
    user.setName("seven");
    user.setGender("man");
    user.setAge(-1);
    user.setEmails(Arrays.asList("sevenlin@gmail.com", "sevenlin.com"));
    ​
    Set<ConstraintViolation<User>> result = Validation.buildDefaultValidatorFactory().getValidator().validate(user);
    ​
    List<String> message
        = result.stream().map(v -> v.getPropertyPath() + " " + v.getMessage() + ": " + v.getInvalidValue())
            .collect(Collectors.toList());
    ​
    message.forEach(System.out::println);
    

    校验结果

    emails[1].<list element> must be a well-formed email address: sevenlin.com
    age must be greater than 0: -1
    

    集成到Spring MVC
    配置

    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {@Override
        public Validator getValidator(); {
            // ...
        }
    }
    

    注意,使用Spring MVC 的时候,Spring会默认注册从classpath下找到的可用Bean Validation,所以如果不需要自定义Validation

    在Controller中校验请求参数 使用注解@Valid和@Validated实现对请求参数的校验

    @PostMapping(value = "/create")
    @ResponseBody
    public ResponseEntity<User> create(@RequestBody @Validated UserForm form) {
        User user = userService.create(form);
        return ResponseEntity.ok().body(user);
    }
    

    配置统一校验结果处理

    @ControllerAdvice
    public class ValidationResponseAdvice extends ResponseEntityExceptionHandler {
        @Override
        protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
            String message = ex.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage)
                    .collect(Collectors.joining(","));
            return ResponseEntity.badRequest().body(message);
        }
    }
    

    常见元数据

    常见元数据

    展开全文
  • laravel 数据验证规则

    千次阅读 2019-06-20 15:19:00
    1.已支持的 return [ 'accepted' => '必须为yes,on,1,true', 'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也... '验证字段必须是给定日期后的值,比如required|date|after:tomo...

    1.已支持的

    return [
        'accepted' => '必须为yes,on,1,true',
        'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也可以用来验证邮箱地址是否存在',
        'after:date' => '验证字段必须是给定日期后的值,比如required|date|after:tomorrow,通过PHP函数strtotime来验证',
        'after_or_equal:date' => '大于等于',
        'alpha' => '验证字段必须全是字母',
        'alpha_dash' => '验证字段可能具有字母、数字、破折号、下划线',
        'alpha_num' => '验证字段必须全是字母和数字',
        'array' => '数组',
        'before:date' => '小于',
        'before_or_equal:date' => '小于等于',
        'between:min,max' => '给定大小在min,max之间,字符串,数字,数组或者文件大小都用size函数评估',
        'boolean' => '必须为能转化为布尔值的参数,比如:true,false,1,0,"1","0"',
        'confirmed' => '字段必须与foo_confirmation字段值一致,比如,要验证的是password,输入中必须存在匹配的password_confirmation字段',
        'date' => '通过strtotime校验的有效日期',
        'date_equals:date' => '等于',
        'date_format:format' => 'date和date_format不应该同时使用,按指定时间格式传值',
        'different:field' => '验证的字段值必须与字段field的值相同',
        'digits:value' => '必须是数字,并且有确切的值',
        'digits_between:min,max' => '字段长度必须在min,max之间',
        'dimensions' => '验证的文件是图片并且图片比例必须符合规则,比如dimensions:min_width=100,min_height=200,可用
                        的规则有min_width,max_width,min_height,max_height,width,height,ratio',
        'distinct' => '无重复值',
        'email' => '符合e-mail地址格式',
        'exists:table,column' => '必须存在于指定的数据库表中',
        'file' => '成功上传的文件',
        'filled' => '验证的字段存在时不能为空',
        'image' => '验证的文件必须是图像,jpeg,png,bmp,gif,svg',
        'in:foo,bar,...' => '验证的字段必须包含在给定的值列表中',
        'in_array:anotherfield' => '验证的字段必须存在于另一个字段的值中',
        'integer' => '整数',
        'ip' => 'ip地址',
        'ipv4' => 'ipv4地址',
        'ipv6' => 'ipv6地址',
        'json' => 'json字符串',
        'max:value' => '大于',
        'mimetypes:text/plain,...' => '验证的文件必须与给定的MIME类型匹配',
        'mimes:foo,bar,...' => '验证的文件必须具有列出的其中一个扩展名对应的MIME类型',
        'min:value' => '小于',
        'nullable' => '可为null,可以包含空值的字符串和整数',
        'not_in:foo,bar...' => '不包含',
        'numeric' => '必须为数字',
        'present' => '验证的字段必须存在于输入数据中,但可以为空',
        'regex:pattern' => '验证的字段必须与给定正则表达式匹配',
        'required' => '验证的字段必须存在于输入数据中,但不可以为空',
                        //以下情况视为空:1.该值为null,2.空字符串,3.空数组或空的可数对象,4.没有路径的上传文件
        'required_if:anotherfield,value,...' => '如果指定的anotherfield等于value时,被验证的字段必须存在且不为空',
        'required_unless:anotherfield,value,...' => '如果指定的anotherfield等于value时,被验证的字段不必存在',
        'required_with:foo,bar,...' => '只要指定的其它字段中有任意一个字段存在,被验证的字段就必须存在且不为空',
        'required_with_all:foo,bar,...' => '当指定的其它字段必须全部存在时,被验证的字段才必须存在且不为空',
        'required_without_all:foo,bar,...' => '当指定的其它字段必须全部不存在时,被验证的字段必须存在且不为空',
        'required_without:foo,bar,...' => '当指定的其它字段有一个字段不存在,被验证的字段就必须存在且不为空',
        'same:field' => '给定字段必须与验证字段匹配',
        'size:value' => '验证字段必须具有与给定值匹配的大小,对字符串,value对应字符数;对数字,对应给定的
                        整数值;对数组,对应count值;对文件,是文件大小(kb)',
        'timezone' => '验证字段是有效的时区标识符,根据PHP函数timezone_identifiers_list判断',
        'unique:table,column,except,idColumn' => '验证字段必须是数据库中唯一的',
        'url' => '有效的url',
    ];

    2.简单例子

    return [
        'title.required' => 'A title is required',
        'body.required'  => 'A message is required',
        'avatar' => [
            'required',
            Rule::dimensions()->maxWidth(500)->maxHeight(250)->ratio(3/2), //限制图片大小和比例
        ],
        'foo.*.id' =>'distinct', //不允许重复
        'state' =>'exists:states', //指定表
        'state1' => 'exists:states,abbreviation', //指定表和字段
        'email' => 'exists:connection.staff,email', //指定查询的数据库
        'email1' => [
            'required',
            Rule::exists('staff')->where(function ($query){
                $query->where('account_id',1);
            }),
        ],
        'zones' => [
            'required',
            Rule::in(['first-zone','second-zone']),
        ],
        'video' => 'mimetypes:video/avi,video/mpeg,video/quicktime',
        'photo' => 'mimes:jpeg,bmp,png', //验证文件扩展名,规则上也会验证文件的MIME类型,通过读取文件的内容以猜测它的MIME类型
        'toppings' => [
            'required',
            Rule::notIn(['sprinkles','cherries']),
        ],
        //当使用regex时,必须使用数组,而不是|分隔符,特别是正则中有|时
        'email2' => 'unique:users,email_address',
        'email3' => 'unique:connection.users,email_address', //指定数据库
        'email4' => Rule::unique('users')->where(function ($query){
            $query->where('account_id',1);
        }),
        'custom' => [
            'person.*.email' => [
                'unique' => 'each person must have a unique e-mail address',
            ]
        ],
    ];

    3.其它特殊例子

    //验证时忽视id
    Validator::make($data,[
        'email' => [
            'required',
            Rule::unique('users')->ignore($user->id,'user_id'),
        ]
    ]);
    
    //在某些情况下,只有在该字段存在于输入数组中时,才可以对字段执行验证检查
    $v = Validator::make($data,[
        'email' => 'sometimes|required|email',//email只有在data数组中时才会被验证
    ]);
    
    $z = Validator::make($data,[
        'email' => 'required|email',
        'games' => 'required|numeric',
    ]);
    $z->sometimes('reason','required|max:500',function ($input){
        return $input->games >= 100; //当值超过100时,reson才必填
    });
    $z->sometimes(['reson','cost'],'required',function ($input){
        return $input->games >= 100;
    });
    $validator = Validator::make($request->all(),[
        'photos.profile' => 'required|image',//验证数组中的某个key的值
    ]);
    
    $validator = Validator::make($request->all(),[
        'person.*.email' => 'email|unique:users',
        'person.*.first_name' => 'required_with:person.*.last_name',
    ]);//验证指定数组输入字段中的每一个email都是唯一的
    
    $request->validate([
        'name' => ['required', new Uppercase()],
    ]);
    $validator = Validator::make($this->request,[
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ])->validate();
    
    $validator->after(function ($validator){
        if ($this->somethingElseIsInvalid()) {
            $validator->errors()->add('field', 'Something is wrong with this field!');
        }
    });
    
    if ($validator->fails()){
    
    }
    
    $errors = $validator->errors();
    echo $errors->first('email');
    
    //以数组形式获取指定字段的所有错误消息
    foreach ($errors->get('email') as $message){
    
    }
    
    //验证表单的数组字段,获取数组元素的所欲错误消息
    foreach ($errors->get('attachments.*') as $message){
    
    }
    
    //查看所有字段的错误消息
    foreach ($errors->all() as $message){
    
    }
    
    // 检测一个字段是否有错误消息
    if ($errors->has('email')){
    
    }
    展开全文
  • 数据质量分析之校验规则模板

    千次阅读 2019-03-22 15:59:46
    现在的校验规则模板,把校验规则的种类、含义以及要填写的内容整理成了excel通用模板,但在实际执行过程中,每个人对校验规则的用途和校验方法存在不同的理解,而对于如何写出相应的校验SQL,有不同程度的困难。...

    现在的校验规则模板,把校验规则的种类、含义以及要填写的内容整理成了excel通用模板,但在实际执行过程中,每个人对校验规则的用途和校验方法存在不同的理解,而对于如何写出相应的校验SQL,有不同程度的困难。
    现有的校验规则说明如下图
    在这里插入图片描述
    要填写的校验规则模板如下图:
    在这里插入图片描述
    从上面的图中可以感受到,如果表的字段较多,除了逐个判断每个字段适用的校验规则,还要写出相应的SQL语句,再将结果粘贴回来,大量的工作都是重复性的操作。在实践中确实也出现了类似的问题,有的人校验的规则多些,分析的深入一些,有人些则只做了简单的校验。本着简化手工操作、固化校验规则的原则,基于excel的VBA实现了一个数据质量校验的模板,可以自动化生成校验SQL,使用者可以将主要精力放在执行SQL及分析结构之上,模板如下:
    在这里插入图片描述
    目前模板支持:

    • 逐个字段分析要校验的内容,每个字段可以加入多个校验规则
    • 目前支持完整性校验、唯一性校验、业务周期完整性校验、存在一致性校验4种,后续可以加入更多的规则,包括日期格式校验、数值格式校验、长度校验等
    • 目前只考虑了MySQL的语法,可以根据情况实现多套数据库的语法支持
    • 理想情况下应该能实现执行SQL并显示结果,而不是给出SQL语句

    感兴趣的同学,可以下载数据质量校验工具使用:
    链接:https://pan.baidu.com/s/1XnbbyFuXv0nco2sl-ZT4gg
    提取码:fvv4

    展开全文
  • MVC 自定义数据校验规则 Validation

    千次阅读 2018-03-14 01:15:03
    MVC 数据验证,自定义验证规则1&gt;如果这个验证能直接用正则表达式进行校验的话,那我们就新建一个类,让它继承自RegularExpressionAttribute类namespace MvcApp.Fileters { public class QQNumberAttribute :...
  • 一、数据验证概述 推荐以下操作在2007之后操作 1.1、查看excel的数据验证 1、进入   2、设置规则   通过验证条件允许,可以看到是每个单元格默认只成立一种条件 1.2、POI代码开发-数据验证 1.2.1、两个数...
  • Atitit 常用数据校验规则   1.1. 。常用的几种数据校验方式有奇偶校验、CRC校验、LRC校验、格雷码校验、和校验、异或校验等。 1 1.2. 校验奇偶校验 1 1.3. CRC循环冗余校验 1 1.4. bcc异或校验法 1 1.5. ...
  • 主要介绍了Yii框架数据模型的验证规则rules()被执行的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了Vue中常用rules校验规则,本文通过实例代码个大家介绍了一些校验方法,需要的朋友可以参考下
  • 数据治理】自定义数据治理规则

    千次阅读 2019-07-22 16:02:26
    数据治理包括数据质量探查、数据清洗、数据脱敏等,这几个动作实际上都是针对表数据的判断或转换,为了增加系统的灵活性和扩展性,可以将其抽象为规则,通过Java Script等形式允许用户自定义扩展,概念图如下: ...
  • 无法关联:检查外键是否正确 违反交叉验证规则:数值交叉校验规则和特定值交叉校验规则 规范性 违反码值规范:值域约束——代码表值域约束 违反格式规范:日期格式是否正确;利用通用格式规则对字段进行检核,如...
  • 界面开发需要数据输入,输入数据就少不了数据校验。不同数据不同校验规则,本案例提供不同数据通过指定数据类型参数使用对应校验规则反馈结果。结果通过定义样式模板展示不同警醒效果!
  • Java 设置Excel数据验证

    千次阅读 2020-03-03 15:11:19
    数据验证是Excel 2013版本中,数据功能组下面的一个功能,在Excel2013之前的版本,包含Excel2010 Excel2007称为数据有效性。通过在excel表格中设置数据验证可有效规范数据输入。设置数据类型时,可设置如验证数字...
  • 数据迁移之数据验证

    千次阅读 2020-03-17 16:00:44
    数据验证分为两步: 1.数据验证 数据验证很简单,对比新老数据库的数据表数量,索引数量,触发器数量,视图数量即可。 2.数据完整性和一致性验证 需要取特定表特定字段进行对比 ...
  • //ref可用于表单验证 model用于绑定数据 rule用于验证规则 labale-with用于控制表单项文案宽度 <el-form ref="form" :model="form" :rule="rules" label-width="200px"> <el-form-item label="名字"> /...
  • AntD中Form表单自定义验证规则

    千次阅读 2021-02-03 14:28:00
    AntD中Form表单自定义验证规则,不能为xxx或者只能是xxx 代码 不能为xxx <Form.Item label="学生编码" name="stuId" validateFirst={true} // 出错时两个校验分别生效 rules={[ { required: true, message:...
  • 验证 Validation:向数据添加验证规则 显示 Display:指定数据如何呈现给用户 模型 Modelling:添加关于用法和与其它类的关系信息 下面是一个用来验证和展现用户信息的一个 Model: class Kid { [Range(0, 18)]...
  • 当创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,默认校验规:utf8_general_ci。 创建一个使用字符集为utf8的db2数据库: create database db2 charset = utf8 ; 创建一个字符...
  • 先给大家分享数据校验显示效果 Web前端数据校验组件 Web项目中客户端与服务端的交互离不开Form表单,Form表单中最常用的元素莫过于input标签,input标签首先要用的肯定是text文本框啦! input文本框允许用户任意...
  • 数据管理 技术规范

    2018-09-15 08:23:46
    数据管理 技术规范 一、元数据概念 二、元数据管理体系 三、元数据管理功能 四、元数据管理应用 五、元数据变更流程
  • 验证规则写在struct对字段tag里,再通过反射(reflect)获取struct的tag,实现数据验证。 安装 go get github.com/go-playground/validator/v10 示例 package main import ( "fmt" "github....
  • 笔者上周开发过程中遇到了身份证校验的这个需求,项目里很多的地方都需要验证,于是就提成了一个单独的文件供我自己使用,今天也分享给大家。 一共分俩个文件 一:存放枚举值的,放到enums.js文件中(放入你们项目...
  • 数据校验

    2020-12-30 11:56:33
    数据校验 数据校验分为三个层次,分别是前端校验,后端校验,数据库校验。 如果前端校验没有通过,数据是不会向后端发送的,而是在前端通知 用户校验失败。 如果后端校验没有通过,数据时不会向数据库中存储的,...
  • 规则引擎 (Rule Engine)介绍 规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能...
  • 转载于:https://www.cnblogs.com/vhen/p/8901210.html
  • 不论是高校还是其他行业,管理信息系统数据质量的重要性不言而喻。在业务层面,数据质量问题不仅会影响单点业务的正常开展,还会影响与该业务相关的其他业务顺利开展;在决策层面,数据质量问题会直接影响到管理层的...
  • 为el-form表单添加:rules 在data中定义规则 将定义的规则绑定在el-form-item 代码如下: <!--登录表单区域--> <!--用户名--> <el v-model=loginForm.username prefix-icon=el-icon-user></el>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 424,083
精华内容 169,633
关键字:

数据校验规则