在 FreeMarker 中测试字符串是不是可以转换为数字

Posted

技术标签:

【中文标题】在 FreeMarker 中测试字符串是不是可以转换为数字【英文标题】:test if string can be converted to a number in FreeMarker在 FreeMarker 中测试字符串是否可以转换为数字 【发布时间】:2010-12-01 06:00:05 【问题描述】:

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

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

我可能可以使用更复杂的正则表达式来做到这一点,但我想知道是否有更简单的方法。

【问题讨论】:

见***.com/q/62158821/738261 【参考方案1】:

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

    <#attempt> / <#recover> 块中使用内置的?number。 在您的模型对象之一中编写一个方法来检查您的字符串是否为数字并从模板中调用它。 编写自定义指令为您执行此操作。

【讨论】:

以上是关于在 FreeMarker 中测试字符串是不是可以转换为数字的主要内容,如果未能解决你的问题,请参考以下文章

freemarker 能否实现数组赋值?

freemarker判断字符串是不是为空

[转]Freemarker数据类型转换

Freemarker的基本语法

Freemarker string

FreeMarker 日期转换