jsp中关于日期判断正则表达式问题

怎么我的<SCRIPT></SCRIPT>中的alert怎么都没反映的呢?
还有就是提交按钮上的onclick事件执行的是什么意思?
<html:submit value="添加" onclick="alert(verify_date(this.form.regexp_content.value))"/>
以下是我的代码,请高手赐教。
<%@ page language="java" pageEncoding="gb2312"%>
<%@ taglib uri="
http://struts.apache.org/tags-bean
" prefix="bean"%>
<%@ taglib uri="
http://struts.apache.org/tags-html
" prefix="html"%>
<jsp:include page="index.jsp"></jsp:include>

<html>
<head>
<title>员工管理</title>
<script language="javascript" type="text/javascript">
//验证日期的格式为****/**/**,
//已经考虑到了闰年的问题,如2001/2/29是不允许的。而2008/2/29则是可以的。
//入口参数:日期字符串;
//出口参数:true|false
function verify_date(date_str)
{
var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29)))$");
if(myReg.test(date_str))
alert("对不起,请您按以下格式输入日期:\n2005-5-5或2005/1/1");
return myReg.test(date_str);
}
</script>

</head>
<body>
<table align="center">
<html:form action="/yuangong">
<tr><td>
<font color="#80ff80">身份证</font><html:text property="id"/><html:errors property="id"/>
</td><td>
<font color="#80ff80">姓名</font> <html:text property="sex"/><html:errors property="sex"/>
</td><td>
<font color="#80ff80">性别</font> <html:select property="name"><html:option key="a" value="男" /><html:option key="b" value="女" /></html:select><html:errors property="name"/>
</td><td>
<font color="#80ff80">电话 </font> <html:text property="telephone"/><html:errors property="telephone"/>
</td><td>
<font color="#80ff80">入职日期</font> <html:text property="starttime"/><html:errors property="starttime"/>
</td><td>
<font color="#80ff80">部门</font> <html:text property="department"/><html:errors property="department"/>
</td>
</tr>
<tr><td>
<html:submit value="添加" onclick="alert(verify_date(this.form.regexp_content.value))"/>
</td></tr>
</html:form>
</table>
</body>
</html>
最新回答
只是偶尔想起你

2021-08-28 16:43:21

1.问题出现
(1)你没有加入name为
regexp_content的控件。
(2)你的正则表达式少括号
(3)你的正则表达式方法少了非操作
2.解决方法
(1)添加类似以下代码
<html:text property="regexp_content"/>
(2)
<var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29)))$"); 这行的最后少加一个括号
正确格式:var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29))))$");
(3)if(myReg.test(date_str))改为
if(!myReg.test(date_str))
许我个未来

2020-07-23 16:44:33

这个问题你之前提问过。
http://zhidao.baidu.com/question/85737086.html

onclick执行的是,用正则表达式去校验你页面中regexp_content标签日期的格式。但是你页面中没这个标签。