我的应用程序中有一个DateTextField组件,我希望使用预定义的模式输入日期。我需要的模式是“yyyy-MM-dd”。我使用以下代码创建了DateTextField。
DateTextField dtf_ExpiryDate = DateTextField.forDatePattern("ExpDate", "yyyy-MM-dd");
dtf_ExpiryDate.add(new DatePicker());
它有助于防止大多数其他格式的日期输入。但它接受dd-MM-yyyy格式的输入并将其转换为某种奇怪的格式。例如, 12-06-2013 会自动转换为 0012-06-20 。
在dd-MM-yyyy中给出日期时有没有办法抛出错误?
DateTextField的Javadocs表示转换是使用Joda时间解析器在内部完成的。有没有办法添加更多约束?
我真的不希望将数据捕获为String并添加StringValidator以检查它是否使用Regex确认模式。
谢谢
答案 0 :(得分:1)
据我所知,答案是否定的。 DateTextField在内部使用DatePattern或DateStyles,因此无法实施更严格的规则。如果您不想使用Javascript(自定义)或JQuery,则必须使用REGEX来验证输入。
看看here。使用下面显示的StrictPatternDateConverter类对输入强制执行严格验证。
答案 1 :(得分:0)
是的! StringRegExp是一个很好的解决方案。但另一种解决方案可能是使用jqWicket。它提供了一个MaskedInputBehavior。看看:http://code.google.com/p/jqwicket/wiki/MaskedInputExample