有没有办法检查字符串是否为数字。
{#strings.isNumeric(dataField)}
不起作用。
如何检查字符串是否包含数字(以及特定的位数) - 是否有可以使用的 RegEx,或者可以调用的内置函数?
想在下面避免这种情况:
{#string.contains('1') or #string.contains('2')}
尝试matches()
:
{#dataField.matches('[0-9]{3,8}')}
这匹配长度为 3 到 8 位(含)的字符串。您可以将这些值更改为适合您的任何值。
您还可以使用开放式长度范围:[0-9]{3,}
表示“至少 3 位数字”
如果您的路径中有库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)}