检查字符串是否包含数字或者是数字 - Thymeleaf

Check if a string contains number or is numeric - Thymeleaf

有没有办法检查字符串是否为数字。 {#strings.isNumeric(dataField)} 不起作用。

如何检查字符串是否包含数字(以及特定位数)- 是否有可以使用的 RegEx,或可以调用的内置函数?

想在下面避免这种情况:

{#string.contains('1') or #string.contains('2')}

尝试 matches():

{#dataField.matches('[0-9]{3,8}')}

这匹配长度为 3 到 8 位数字(含)的字符串。您可以将这些值更改为适合您的值。

您也可以使用开放式长度范围:[0-9]{3,} 表示 "at least 3 digits"

如果你的路径中有库 org.apache.commons.lang3 你可以将它用作下一个

${T(org.apache.commons.lang3.StringUtils).isNumeric(dataField)}

因此,如果您想使用 if 块,则可以是:

<th:block th:if="${T(org.apache.commons.lang3.StringUtils).isNumeric(dataField)}">
   <p>Is numeric!</p>
</th:block/>

否则,如果您的 class 路径中没有 org.apache.commons.lang3,您可以实现自己的方法来检查它是否为数字,然后使用它。 所以你可以像下面这样创建一个 class:

package your.package;

public class Utils {
     public static boolean isNumeric(String data){
           //impl
           return true;
     }
}

然后在下一个表达式中使用它:

${T(your.package.Utils).isNumeric(dataField)}