2009-09-24 88 views
3

我想測試一個字符串是否可以轉換爲FreeMarker中的數字。例如,「123」和「3.14」可以轉換,但「foo」不能。我知道我可以通過在字符串上使用數字方法(例如"123"?number)並檢查它是否產生錯誤來測試此操作,但我正在尋找一種方法來測試此操作而不會導致錯誤。測試字符串是否可以轉換爲FreeMarker中的數字

我試過?matches("^\d+$"),它對整數工作正常,但我正在尋找適用於所有數字的東西。

我可以使用更復雜的正則表達式來做,但我想知道是否有更簡單的方法。

回答

7

更簡單的方法是在FreeMarker中不這樣做:-)這聽起來像控制器(或模型上的方法)應該做的事情,而不是查看模板。這就是說,你有幾個選擇:

  1. 使用內置<#attempt>/<#recover>塊內的號碼。
  2. 在你的一個模型對象中編寫一個方法來檢查你的字符串是否是一個數字並從模板中調用它。
  3. 寫一個自定義指令爲你做這個。
+0

我試過你的第一個選項,它的工作。謝謝。 – 2009-09-24 22:03:52

相關問題