如何检查字符串是不是与 Thymeleaf 中的正则表达式匹配?
Posted
技术标签:
【中文标题】如何检查字符串是不是与 Thymeleaf 中的正则表达式匹配?【英文标题】:How to check if a string matches with regex in Thymeleaf?如何检查字符串是否与 Thymeleaf 中的正则表达式匹配? 【发布时间】:2021-01-18 15:22:30 【问题描述】:我正在编写一个培训应用程序来收集以下堆栈上的书籍:Java/Spring/Thymeleaf。
我应该输入一些关于书籍的值,例如书名和书籍大小(页数)。
dto 类 Book 中的验证字段:
@NotEmpty
private String title;
@NotNull
@Digits(integer = 4, fraction = 0)
private Integer size;
视图文件包含:
<td>
<input type="text" placeholder="book_title" th:field="*title">
<p th:if="$#fields.hasErrors() and *title==''">field title must not be empty</p>
</td>
<td>
<input type="text" placeholder="size (page)" th:field="*size">
<p th:if="$#fields.hasErrors() and !$#size.matches('[0-9]1,4')">field value must be digit and less than 4 signs</p>
它工作正常:如果title
字段未填写,我们可以看到消息。
但是,对于 size
字段,我们期望 4 位数字,但是如何正确配置此正则表达式? !$#size.matches('[0-9]1,4')
这样就没有警告信息了。
我提出了类似的问题 Check if a string contains number or is numeric - Thymeleaf 但我需要反转布尔条件,它不适用于我的情况
【问题讨论】:
我根据这个链接编写我的正则表达式并反转布尔表达式,但它不起作用 【参考方案1】:您可以在调用hasErrors()
函数时检查Thymeleaf模板中哪个字段有错误。
类似这样的:
<p th:if="$#fields.hasErrors('size')">field value must be digit and less than 4 signs</p>
这样,只有在size
字段有错误并且您不需要使用正则表达式检查其值时才会显示错误。
【讨论】:
以上是关于如何检查字符串是不是与 Thymeleaf 中的正则表达式匹配?的主要内容,如果未能解决你的问题,请参考以下文章
如果计算相对拒绝频率,如何衡量与显着性水平是不是显着不同? (R中的正态性检验)
如何检查字符串是不是与 node.js 中的任何正则表达式数组匹配?
Thymeleaf 中如何判断list集合中是不是包含某个值
thymeleaf 中 String 对象的 #strings.replace() 实用程序方法是不是替换了提供的字符串中的所有匹配项?