正则表达式使用

正则表达式经常用,这里介绍个网站

正则表达式生成器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package io.github.lyr2000.dissertation.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author lyr
 * @description 字符串比较工具
 * @create 2021-11-23 19:21
 *
 */
public class StringMatcherUtil {

    public static Pattern getPattern(String regex) {
        return Pattern.compile(regex);
    }
    public static Matcher getMatcher(Pattern p,String value) {
        Matcher matcher = p.matcher(value);
        return matcher;
    }
}
1
2
3
4
5
6
  /**
     * 图片地址
     */
    @NotBlank(groups = {V.Create.class},message = "课程封面图片不能为空")
    @Pattern(regexp = "^http[s]?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*).(jpeg|jpg|png|jfif)$",message = "不是图片格式")
    private String courseCoverImg;

@Pattern 切面的一些问题

如果字符串 为空,就不校验,如果不为空就要校验 怎么写?

1
2
 @Pattern(regexp = "^$|^http[s]?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*).(jpeg|jpg|png|jfif)(.*?)$",message = "不是图片格式",groups = {V.Create.class,V.Update.class})
    private String courseCoverImg;

可以在前面加个 ^$| 这样就可以把 空字符串也包含进去了。

参考csdn的博客

react 前端进行校验

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 <Form.Item label="课程名字"
     name="courseName" rules={[
        {
            required:true,
            message:"课程名字不能为空"
        },

    ]} >
    <Input placeholder="courseName" />
</Form.Item>
 <Form.Item label="封面图片"
     rules={[
        {
            pattern:/^http[s]{0,1}:\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*).(jpeg|jpg|png|jfif)(.*?)$/,
            message:"请输入图片格式"
        }
    ]
           }
     name="courseCoverImg" >
    <Input placeholder="课程封面图片"   />

</Form.Item>