我正在尝试测试字符串是否可以在FreeMarker中转换为数字。例如,可以转换“123”和“3.14”,但“foo”不能。我知道我可以通过在字符串上使用数字方法(例如"123"?number
)并查看它是否产生错误来测试,但我正在寻找一种方法来测试它而不会导致错误。
我尝试?matches("^\d+$")
,它对整数有效,但我正在寻找适用于所有数字的东西。
我可以使用更复杂的正则表达式来完成它,但我想知道是否有更简单的方法。
答案 0 :(得分:9)
更简单的方法是不在FreeMarker中执行:-)这听起来像控制器(或模型上的方法)应该做的而不是查看模板。也就是说,你有几个选择:
<#attempt> / <#recover>
区块中使用内置号码。