精华内容
下载资源
问答
  • @Pattern 在 Spring Boot @Validated 中可能是比较常见的。 但是,我在一次学习别人的代码时发现,@Pattern 校验邮箱时,email参数不传时请求能正常通过。 然后就是我一天的时间都在找源码中的原因了。我发现 @...

    @Pattern 在 Spring Boot @Validated 中可能是比较常见的。

    但是,我在一次学习别人的代码时发现,@Pattern 校验邮箱时,email参数不传时请求能正常通过。

    然后就是我一天的时间都在找源码中的原因了。我发现 @Validated 注解在最后对 @Pattern 生效时居然使用的是org.hibernate.validator.internal.constraintvalidators.bv.PatternValidator.isValid(CharSequence value, ConstraintValidatorContext constraintValidatorContext)

    hibernate 下的类!Spring Boot @Validated 依赖 MyBatis ?

    下面事源码:

    public boolean isValid(CharSequence value, ConstraintValidatorContext constraintValidatorContext) {
            if (value == null) {
                return true;
            } else {
                if (constraintValidatorContext instanceof HibernateConstraintValidatorContext) {
                    ((HibernateConstraintValidatorContext)constraintValidatorContext.unwrap(HibernateConstraintValidatorContext.class)).addMessageParameter("regexp", this.escapedRegexp);
                }
    
                Matcher m = this.pattern.matcher(value);
                return m.matches();
            }
        }

     

    展开全文
  • @Pattern的用法

    千次阅读 2019-07-19 15:36:58
    把这个注解加在entity的参数上,可以选择分类也可以默认;...@Pattern(regexp = "\\w+$") private String userName; 在user传参或者controller层中的添加@Validated注解进行调用 举个栗子:public void add...

    把这个注解加在entity的参数上,可以选择分类也可以默认;

    关于注解中需要传的参数:一般默认就填入正则表达式即可,但是java中字符串需要转义,这个需要注意一下。

    @Pattern(regexp = "\\w+$")
    private String userName;
    在user传参或者controller层中的添加@Validated注解进行调用
    举个栗子:public void addUser(@Validated User user){...}

    下面是常用的正则表达式:

    匹配首尾空格的正则表达式:(^\s*)|(\s*$)
    整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
    只能输入数字:"^[0-9]*$"。
    只能输入n位的数字:"^\d{n}$"。
    只能输入至少n位的数字:"^\d{n,}$"。
    只能输入m~n位的数字:。"^\d{m,n}$"
    只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
    只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
    只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
    只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
    只能输入非零的负整数:"^\-[1-9][]0-9"*$。
    只能输入长度为3的字符:"^.{3}$"。
    只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
    只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
    只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
    只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
    只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
    验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
    验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
    只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
    验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
    验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
    验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
    验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
    验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
    验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    匹配双字节字符(包括汉字在内):[^\x00-\xff]
    应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
    String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
    匹配空行的正则表达式:\n[\s| ]*\r
    匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
    中文字母数字下划线:^[a-zA-Z0-9_\u4e00-\u9fa5]*$

     

    展开全文
  • SPRINGBOOT中@PATTERN注解对时间格式校验@Pattern@Datetimeformat 记录一下在使用spring boot开发后端接口时遇到的一个问题。 我想在实体类中直接用注解验证日期时间格式,但前端传过来的是字符串,不是Date,所以刚...

    spring boot中@Pattern校验String时间格式

    记录一下在使用spring boot开发后端接口时遇到的一个问题。
    我想在实体类中直接用注解验证日期时间格式,但前端传过来的是字符串,不是Date,所以刚开始用@Datetimeformat一直不生效。之后改用@Pattern

    @Pattern

    想验证时间日期字符串是否为“yyyy-MM-dd HH:mm:ss”格式的,利用正则表达式。
    实体类中:

    //实体类
    @Data
    public class Message {
    
    	@NotNull(message = "开始时间不能为空")
        @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$",
                message = "时间格式应为:yyyy-MM-dd HH:mm:ss")
        private String start_time;
    
    	//...
    }
    

    controller中:(注意要有@Valid)

        @PostMapping("setMessage")
        @ResponseBody
        public Result setMessage(@Valid Message message, BindingResult bindingResult) {
    		//...
        }
    

    @Datetimeformat

    只能用来对Date类型的日期参数进行校验。

    展开全文
  • @Pattern@Validated校验

    万次阅读 2019-06-16 12:24:10
    转载https://blog.csdn.net/qq_36927265/article/details/87864026 ... @Pattern(regexp = "\\w+$") 把这个注解加在entity的参数上,可以选择分类也可以默认; 关于注解中需要传的参数:一般默认就填入...

    转载https://blog.csdn.net/qq_36927265/article/details/87864026

    https://blog.csdn.net/qq_39822451/article/details/83989415

    @Pattern(regexp = "\\w+$")
    把这个注解加在entity的参数上,可以选择分类也可以默认;

    关于注解中需要传的参数:一般默认就填入正则表达式即可,但是java中字符串需要转义,这个需要注意一下。

    @Pattern(regexp = "\\w+$")
    private String userName;
    在user传参或者controller层中的添加@Validated注解进行调用
    举个栗子:public void addUser(@Validated User user){...}
    下面是常用的正则表达式:

      1 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
      2 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
      3 只能输入数字:"^[0-9]*$"。
      4 只能输入n位的数字:"^\d{n}$"。
      5 只能输入至少n位的数字:"^\d{n,}$"。
      6 只能输入m~n位的数字:。"^\d{m,n}$"
      7 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
      8 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
      9 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
     10 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
     11 只能输入非零的负整数:"^\-[1-9][]0-9"*$。
     12 只能输入长度为3的字符:"^.{3}$"。
     13 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
     14 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
     15 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
     16 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
     17 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
     18 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
     19 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
     20 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
     21 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
     22 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
     23 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
     24 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
     25 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
     26 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
     27 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
     28 匹配双字节字符(包括汉字在内):[^\x00-\xff]
     29 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
     30 String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
     31 匹配空行的正则表达式:\n[\s| ]*\r
     32 匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
     

    展开全文
  • 1、 前端传参要求 项目开发中经常会遇到对用户输入内容的限制,本篇对常用限制做一总结。如下图所示,标识字段有严格...@Pattern(regexp="^[\u4e00-\u9fa5_a-zA-Z0-9]+$",message="公司名称只能输入中文字符 字母、数字
  • @Pattern进行正则校验

    千次阅读 2019-10-16 20:20:35
    @Pattern(regexp = "\\d{4}", message = "仓位标识格式不正确", flags = {}, groups = {}, payload = {}) 作用于属性 regexp:正则表达式 message:不符合条件时的提示信息 flags:匹配标志,一个位掩码,可能包括 ...
  • @Pattern 为空字符串的时候,不需校验正则表达式

    千次阅读 多人点赞 2020-07-01 09:34:53
    问题 ,使用 @Pattern 注解 在用户 传入 空字符串 ""的时候 也会执行 校验 。 租赁类型为非必填项, 当前端 传的 carType:""时 执行了校验 如果字段为空,如何告诉系统忽略约束? 这是可选字段,如果它不是空...
  • 1.需求背景 有一个需求,在前端传过来的时间格式的字符串进行校验,是否符合"yyyy-MM-dd HH:mm:ss",在SpringBoot... 在实体类的字段名上添加@Pattern注解,有个属性regexp,该属性的值就是正则表达式。 "yyyy-MM...
  • Constraints 注解之@Pattern

    千次阅读 2019-09-20 16:30:53
    @Pattern(regexp = "\\w+$") 把这个注解加在entity的参数上,可以选择分类也可以默认; 关于注解中需要传的参数:一般默认就填入正则表达式即可,但是java中字符串需要转义,这个需要注意一下。 @...
  • @Pattern的用法 常用正则表达式

    千次阅读 2019-09-16 09:51:33
    @Pattern(regexp = "\\w+$") 把这个注解加在entity的参数上,可以选择分类也可以默认; 关于注解中需要传的参数:一般默认就填入正则表达式即可,但是java中字符串需要转义,这个需要注意一下。 @Pattern(regexp =...
  • @NotBlank(message = "项目标识符不得为空") @Pattern(regexp = "[a-z0-9_\\-]{1,100}", message = "仅小写字母(a-z)、数字、破折号(-)和下划线(_)可以使用,且长度最长为100,最短为1") private String ...
  • Spring中@Pattern的使用

    千次阅读 2018-07-19 17:21:00
    @Pattern(regexp = "^accessor$", message = "请求参数不合法") @RequestParam("findBy") String accessor, @RequestParam("accessorId") long accessorId){ //... } 为Controller中特定请求添加 @Pattern...
  • 第一次写博客,从今天开始记录我学习ssm框架所遇到的问题,希望能帮助到大家 ... @Pattern(regexp = "^[\\u2E80-\\u9FFFa-zA-Z0-9_-]{2,8}$" ,message = "用户名必须是2~8位汉子数字或英文的组合")...
  • @Pattern(regexp=‘正则表达式’) 这个注解的意思就是做 ‘正则表达式’ 验证; 如果要时间格式, 则编写时间正则表达式; 如果要验证邮箱,在编写邮箱正则表达式; 时间正则表达式, 可以用java.util.regex....
  • 对于正则这个东西,对我来说一直是很懵逼的,每次用每次查,然后还是记不住,这次又要在参数上加格式验证了,改了几次,改的心力憔悴,这次又一点一点的从语法开始自己拼写的正则貌似好使了,记录一下。...
  • public class B00XXXBean { /** 登录名 */ @Length(max = 10, message = "{valid.length}") @NotBlank(message = "{valid.name}") @Pattern(regexp = "^[\u4E00-\u9FA5A-Za-z0-9_]+$", message = "{val...
  • @Pattern (regexp = "^[1-9]\\d?(\\.\\d)?$|^100$|^100\\.0$", message = "当月目标值格式错误,请确保为1到100且不超过一位小数的数字") 只能修饰string类型的字段 @NotNull : //CharSequence, Collection, Map ...
  • @Pattern指定对象要匹配正则表达式 在Bean的验证中,如果要验证对应的规则,需要在要验证的对象之前加上@Validated注解,如下所示: @RequestBody @Validated User user User的name属性限制了字符串的长度最小是5,...
  • Spring注解原理学习之@Size and @Pattern

    千次阅读 2019-06-27 14:53:25
    Created by Wang, Jerry on Jul 27, 2016 起初我直接加入下面的代码,发现不work,perform了validation之后,没有返回我期望的error message: @Size(min = 10, message = “at least 10 char needed!...@Pattern(re...
  • Pattern的用法实例

    2019-04-02 01:51:55
    NULL 博文链接:https://wy649898543.iteye.com/blog/1452422
  • 主要介绍了JavaWeb Servlet中url-pattern的使用的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下
  • 关于Pattern注解的使用注意事项

    千次阅读 2020-04-16 09:36:09
    @Pattern不能用在Integer和Long上 今天在项目中Long的字段上加了@Pattern,结果报了这个错 HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java....
  • 题目地址:...Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such that there is a bijection be...
  • 匹配模式(Pattern flags) compile()方法有两个模式 未开匹配模式 Pattern compile(String regex) 开匹配模式 Pattern compile(String regex, int flags) 源码关于flags的描述 Match flags, ...
  • java日期年月日pattern

    2021-01-27 11:51:55
    yyyy-MM-dd hh:mm:ss SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return(sdf.format(new Date()));
  • Pattern类的用处(获取手机号码)

    千次阅读 2019-03-10 14:00:27
    Pattern类最大的用处是获取字符串中的手机号码 首先先看看API中是如何描述的: 我们可以看到,典型的调用顺序,上图的ab就是正则表达式,“aaaaab&amp;quot;就是字符串,意思就是根据正则0或多个a,一个b去...
  • 1、Pattern.MULTILINE模式的用法 正则表达式中出现了^或者$, 默认只会匹配第一行. 设置了Pattern.MULTILINE模式,会匹配所有行。例如, Pattern p1 = Pattern.compile("^.*b.*$"); //输出false,因为正则表达式中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 920,130
精华内容 368,052
关键字:

@pattern