2014-03-28 53 views
2

我正在研究Grails應用程序,並希望能夠對g:textField進行驗證。我只想確保數字是數字,單詞是單詞。我想避免通過JS做到這一點,但如果這是唯一的方法,那就這樣吧。這是我正在嘗試的。使用正則表達式在g中進行驗證:TextField

<g:textField type="number" pattern="^(?:[-+]?[1-9]\d*|0)?(?:\.\d+)?\$" class="form-control" name="hours" value="${hours}"/></div> 

任何建議或指示?或者我應該通過JS做到這一點?

+1

我不明白「確保數字是數字,單詞是單詞」。您的代碼段中的正則表達式僅用於數字。詞彙如何適應?他們在這個字段中輸入數字*或*字詞?什麼觸發數字檢查與單詞檢查?請提供更多信息。 – aliteralmind

+2

如果你想在服務器端使用正則表達式進行驗證,它有一個約束:http://grails.org/doc/latest/ref/Constraints/matches.html。 –

+0

嘿,對不起,延遲迴復。所以更具體的說,有5個textFields,4個應該包含字符和單詞,1個只能包含數字和小數點。這裏提供的例子是數字字段。 – richari1987

回答

2

所以我能夠找出正確的正則表達式。我遇到的問題是關於逃生角色和他們互操作的方式。

<g:textField type="number" pattern="^[0-9]+\\s*\$|^[0-9]+\\.?[0-9]+\\s*\$" required="true" class="form-control" name="hours" value="${deliverable.estimatedHours}"/> 

這將檢查輸入字符串的格式,並確保它只包含數字。