如何检查字符串是否可转换为数字
How do I check if a string is convertable to a number
在 freemarker 中,我有一个宏 myfunc
执行以下操作:
<#macro myfunc x>
<#attempt>
<#assign x=(x?number)>
<#recover>
</#attempt>
${x!''}
</#macro>
所以,本质上,如果 x
(以字符串开头)并且可以转换为数字,那么我想将它包装在 (${x})
中,否则只显示值。
除了它附带的难看的 <#attempt>
错误日志记录外,我对这个解决方案很好。
似乎没有一种简单的方法可以在不使用 <#attempt>
的情况下检查字符串是否可以转换为数字,或者我的研究步履蹒跚——我也不想在 Java 方面,因为我将其视为视图代码,不属于我的模型代码。有人知道吗?
您可以使用正则表达式:
<#if x?matches("\d+")>
// do something with x?number
<#else>
// do something with x
</#if>
在 freemarker 中,我有一个宏 myfunc
执行以下操作:
<#macro myfunc x>
<#attempt>
<#assign x=(x?number)>
<#recover>
</#attempt>
${x!''}
</#macro>
所以,本质上,如果 x
(以字符串开头)并且可以转换为数字,那么我想将它包装在 (${x})
中,否则只显示值。
除了它附带的难看的 <#attempt>
错误日志记录外,我对这个解决方案很好。
似乎没有一种简单的方法可以在不使用 <#attempt>
的情况下检查字符串是否可以转换为数字,或者我的研究步履蹒跚——我也不想在 Java 方面,因为我将其视为视图代码,不属于我的模型代码。有人知道吗?
您可以使用正则表达式:
<#if x?matches("\d+")>
// do something with x?number
<#else>
// do something with x
</#if>