有没有办法检查字符串是否为数字。
{#strings.isNumeric(dataField)}
不起作用。
如何检查字符串是否包含数字(特定的位数) - 是否有可以使用的RegEx,或者可以调用的内置函数?
想要避免以下情况:
{#string.contains('1') or #string.contains('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)}