测试字符串是否可以转换为FreeMarker中的数字

时间:2009-09-24 21:33:12

标签: freemarker

我正在尝试测试字符串是否可以在FreeMarker中转换为数字。例如,可以转换“123”和“3.14”,但“foo”不能。我知道我可以通过在字符串上使用数字方法(例如"123"?number)并查看它是否产生错误来测试,但我正在寻找一种方法来测试它而不会导致错误。

我尝试?matches("^\d+$"),它对整数有效,但我正在寻找适用于所有数字的东西。

我可以使用更复杂的正则表达式来完成它,但我想知道是否有更简单的方法。

1 个答案:

答案 0 :(得分:9)

更简单的方法是不在FreeMarker中执行:-)这听起来像控制器(或模型上的方法)应该做的而不是查看模板。也就是说,你有几个选择:

  1. <#attempt> / <#recover>区块中使用内置号码。
  2. 在您的某个模型对象中编写一个方法,以检查您的字符串是否为数字并从模板中调用它。
  3. 编写自定义指令为您执行此操作。