開發(fā)過程中遇到小程序登記信息填寫文本時可能輸入表情包,需要后端校驗
由于字段太多,所以用自定義注解的方式來實現
步驟1:在pom文件中加入表情包依賴
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>5.1.1</version>
</dependency>
步驟2:
自定義注解類
package com.company.web.compatibility.annotation;
import cn.hutool.extra.emoji.EmojiUtil;
import com.itextpdf.text.log.SysoCounter;
import com.xiaoleilu.hutool.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.TYPE_USE;
/**
* <p>
* 表情包自定義校驗注解
* </p>
* @date 2023/7/12/
*/
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotBlankEmoji.EmojiValidator.class)
@Documented
public @interface NotBlankEmoji {
String message()
default "不允許輸入表情符號";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
class EmojiValidator implements ConstraintValidator<NotBlankEmoji, String> {
@Override
public void initialize(NotBlankEmoji constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
return !containsEmoji(value);
}
public boolean containsEmoji(String value)
{
if (StrUtil.isBlank(value)) {
return false;
}
boolean emoji = EmojiUtil.containsEmoji(value);
return emoji;
}
}
}
步驟3:文章來源:http://www.zghlxwxcb.cn/news/detail-572326.html
在請求的實體使用這個注解,需要要在controller中加入@Validated注解,校驗才會生效文章來源地址http://www.zghlxwxcb.cn/news/detail-572326.html
@ApiModel("Hr結構人員教育經歷")
@Data
public class HrWorkExperienceDto {
@ApiModelProperty("證明人")
@NotBlank(message = "證明人不能為空" )
@Length(max=44, message = "證明人超過了44個字符" )
@Xss( message = "證明人不能輸入html特殊字符" )
@NotBlankEmoji( message = "證明人不允許輸入表情符號" )
private String certifier;
}
到了這里,關于后端表情包依賴+自定義注解實現校驗的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!