2014-03-28 51 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}"/> 

这将检查输入字符串的格式,并确保它只包含数字。