日期:2014-05-17  浏览次数:20740 次

怎么在jsp里判断文本框的输入值是否符合yyyy-mm-dd的格式呢?
我用的下面的代码,但是如果用户输入符合yyyy-mm-dd,则返回true。如果随便输,比如:‘asdf’,就会报错。

如果把它放到try catch里,也会报错,date_str_p.matches根本没进异常。

Java code

String date_str_p = request.getParameter("date_str");    
boolean str_f = date_str_p.matches("^\\d{4}-\\d{2}-\\d{2}$");





------解决方案--------------------
这两行是不会报错的,除非你的request.getParameter("date_str")==null
------解决方案--------------------
弄个日期控件吧,很方便了,就不用这么麻烦了
------解决方案--------------------
自己写日期很讨厌了,建议使用WdatePicker,js库。很方便的。
------解决方案--------------------
楼主,这样的习惯不好哦,
if (date_str_p=="" || date_str_p==null)

尤其是:date_str_p==""

报错的话,把错误贴出来,不然怎么知道什么错呢。
------解决方案--------------------
最好用一个时间控件,例如My97DatePicker,http://mysuc.com/test/My97DatePicker/

如果是后台acton调到jsp,可以
<input type="text" class="Wdate" id="date_str" name="date_str" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" value="${date_str}"/> , 用el表达式取值

如果是jsp调到jsp,可以
<input type="text" class="Wdate" id="date_str" name="date_str" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" value="${param.date_str}"/>,用${param.XXX}"取值
------解决方案--------------------
把错误贴出来,不然找不到错