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

时间:2016-01-28 22:00:09

标签: regex string thymeleaf isnumeric

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

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

想要避免以下情况:

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

2 个答案:

答案 0 :(得分:2)

尝试matches()

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

匹配长度为3到8位(包括3和8位)的字符串。您可以将这些值更改为适合您的任何值。

您还可以使用开放式长度范围:[0-9]{3,}表示“至少3位数”

答案 1 :(得分:1)

如果您的路径中有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/>

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

package your.package;

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

然后使用下一个表达式:

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