﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-learning java-文章分类-jsp</title><link>http://www.blogjava.net/lmsun/category/2324.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 08:46:33 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 08:46:33 GMT</pubDate><ttl>60</ttl><item><title>用正则表达式和javascript对表单进行全面验证</title><link>http://www.blogjava.net/lmsun/articles/10421.html</link><dc:creator>my java</dc:creator><author>my java</author><pubDate>Thu, 18 Aug 2005 05:14:00 GMT</pubDate><guid>http://www.blogjava.net/lmsun/articles/10421.html</guid><wfw:comment>http://www.blogjava.net/lmsun/comments/10421.html</wfw:comment><comments>http://www.blogjava.net/lmsun/articles/10421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lmsun/comments/commentRss/10421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lmsun/services/trackbacks/10421.html</trackback:ping><description><![CDATA[<P>代码：&lt;!--<BR>使用时请将下面的javascript代码存到一个单一的js文件中。<BR>1、表单要求<BR>&nbsp;&lt;form name="formname" onSubmit="return validateForm(this)"&gt;&lt;/form&gt;<BR>&nbsp;将对表单中的所有以下类型的域依次验证，所有验证是去除了前导和后缀空格的，要注意是区分大小写的。<BR>2、空值验证<BR>&nbsp;表单中任意域加上emptyInfo属性将对此域是否为空进行验证（可以和最大长度验证\一般验证方式同时使用）。<BR>&nbsp;无此属性视为此域允许空值。<BR>　　如：&lt;input type="text" name="fieldNamename" emptyInfo="字段不能为空！"&gt;<BR>3、最大长度验证（可以和空值验证、一般验证方式同时使用）：<BR>&nbsp;&lt;input type="text" name="fieldNamename" maxlength="20" lengthInfo="最大长度不能超过20！"&gt;<BR>&nbsp;或,&lt;textarea maxlength="2000" lengthInfo="最大长度不能超过2000！"&gt;<BR>3、一般验证方式(不对空值做验证）:<BR>　　如：&lt;input type="text" validator="^(19|20)[0-9]{2}$" errorInfo="不正确的年份!" &gt;<BR>4、标准验证(不与其它验证方式同时使用）：<BR>&nbsp;全部通过&lt;input type="hidden"&gt;来实现，并且不需要name属性以免提交到服务器。<BR>　　4.1、合法日期验证：<BR>&nbsp;&nbsp;&lt;input type="text" name="yearfieldName" value="2004"&gt;注：这里也可以是&lt;select name="yearfieldName"&gt;&lt;/select&gt;，以下同<BR>&nbsp;&nbsp;&lt;input type="text" name="monthfieldName" value="02"&gt;<BR>&nbsp;&nbsp;&lt;input type="text" name="dayfieldName" value="03"&gt;<BR>&nbsp;&nbsp;&lt;input type="hidden" validatorType="DateGroup" year="yearfieldName" month="monthfieldName" day="dayfieldName" errorInfo="不正确的日期!"&gt;<BR>&nbsp;&nbsp;yearfieldName、monthfieldName、dayfieldName分别为年月日字段，月和日可以是两位(MM)或一位格式(M)，<BR>&nbsp;&nbsp;此处不对每个字段分别检验(如果要检验，请在年月日三个域分别使用前面的一般验证方式），只对日期的最大值是否合法检查;<BR>&nbsp;4.2、日期格式验证(请注意，此验证不对日期是否有效进行验证，还未找到从格式中得到年月日数据的方法^_^)：<BR>&nbsp;&nbsp;&lt;input type="text" name="datefieldName" value="2003-01-03 21:31:00"&gt;<BR>&nbsp;&nbsp;&lt;input type="hidden" validatorType="Date" fieldName="datefieldName"; format="yyyy-MM-dd HH:mm:ss" errorInfo="不正确的日期!"&gt;<BR>&nbsp;&nbsp;其中格式仅对y、M、d、H、m、s进行支持(其它字符视为非时间的字符)<BR>&nbsp;4.3、列表验证：<BR>&nbsp;&nbsp;检验列表(checkbox、redio、select)是否至少选中了一条记录(对select主要用于多项选择)<BR>&nbsp;&nbsp;&lt;input type="checkbox" name="checkbox1"&gt;<BR>&nbsp;&nbsp;&lt;input type="hidden" validatorType="Checkbox" fieldName="checkbox1" errorInfo="请至少选中一条记录!"&gt;<BR>&nbsp;&nbsp;其中validatorType可以是Checkbox、R、Select;<BR>&nbsp;&nbsp;对于一个select表单，如果要求选择一条不能是第一条的记录，请用下列方式:<BR>&nbsp;&nbsp;&lt;select name="select1" emptyInfo="请选择一个选项!"&gt;<BR>&nbsp;&nbsp;&lt;option value=""&gt;==请选择==&lt;/option&gt;<BR>&nbsp;&nbsp;&lt;option value="1"&gt;1&lt;/option&gt;<BR>&nbsp;&nbsp;&lt;select&gt;<BR>&nbsp;4.4、Email验证：<BR>&nbsp;&nbsp;&lt;input type="text" name="email"&gt;<BR>&nbsp;&nbsp;&lt;input type="hidden" fieldName="email" validatorType="Email" separator="," errorInfo="不正确的Email!"&gt;<BR>&nbsp;&nbsp;其中separator为可选项，表示输入多个email时的分隔符(无此选项只能是一个地址）<BR>&nbsp;4.5、加入其它javascript操作：<BR>&nbsp;&lt;script type="text/javascript"&gt;<BR>&nbsp;&nbsp;function functionname(){<BR>&nbsp;&nbsp;&nbsp; 自定义方法<BR>&nbsp;&nbsp;}<BR>&nbsp;&lt;/script&gt;<BR>&nbsp;表单中加入&lt;input type="hidden" validatorType="javascript" functionName="functionname"&gt;（此时emptyInfo等属性无效）<BR>&nbsp;&nbsp;时将调用function属性中指定的javascript方法（要求方法返回true或false，返回false将不再验证表单，也不提交表单)。<BR>5、在表单通过验证提交前disable一个按钮（也可将其它域disable,不能与其它验证同在一个域)，不要求按钮是表单中的最后一个<BR>&nbsp;&lt;input type="button" name="提交" validatorType="disable"&gt;<BR>6、不验证表单<BR>　　&lt;input type="hidden" name="validate" value="0" functionName="functionname"&gt;<BR>&nbsp;当validator域值为0时不对表单进行验证，直接提交表单或执行指定function并返回true后提交表单<BR>&nbsp;functionName为可选</P>
<P>--&gt;<BR>&lt;script type="text/javascript"&gt;<BR>function getStringLength(str){<BR>&nbsp; var endvalue=0;<BR>&nbsp; var sourcestr=new String(str);<BR>&nbsp; var tempstr;<BR>&nbsp; for (var strposition = 0; strposition &lt; sourcestr.length; strposition ++) {<BR>&nbsp;&nbsp;&nbsp; tempstr=sourcestr.charAt(strposition);<BR>&nbsp;&nbsp;&nbsp; if (tempstr.charCodeAt(0)&gt;255 || tempstr.charCodeAt(0)&lt;0) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endvalue=endvalue+2;<BR>&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endvalue=endvalue+1;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; return(endvalue);<BR>}<BR>function trim(str){<BR>&nbsp; if(str==null) return "";<BR>&nbsp; if(str.length==0) return "";<BR>&nbsp; var i=0,j=str.length-1,c;<BR>&nbsp; for(;i&lt;str.length;i++){<BR>&nbsp;&nbsp;&nbsp; c=str.charAt(i);<BR>&nbsp;&nbsp;&nbsp; if(c!=' ') break;<BR>&nbsp; }<BR>&nbsp; for(;j&gt;-1;j--){<BR>&nbsp;&nbsp;&nbsp; c=str.charAt(j);<BR>&nbsp;&nbsp;&nbsp; if(c!=' ') break;<BR>&nbsp; }<BR>&nbsp; if(i&gt;j) return "";<BR>&nbsp; return str.substring(i,j+1); <BR>}<BR>function validateDate(date,format,alt){<BR>&nbsp; var time=trim(date.value);<BR>&nbsp; if(time=="") return;<BR>&nbsp; var reg=format;<BR>&nbsp; var reg=reg.replace(/yyyy/,"[0-9]{4}");<BR>&nbsp; var reg=reg.replace(/yy/,"[0-9]{2}");<BR>&nbsp; var reg=reg.replace(/MM/,"((0[1-9])|1[0-2])");<BR>&nbsp; var reg=reg.replace(/M/,"(([1-9])|1[0-2])");<BR>&nbsp; var reg=reg.replace(/dd/,"((0[1-9])|([1-2][0-9])|30|31)");<BR>&nbsp; var reg=reg.replace(/d/,"([1-9]|[1-2][0-9]|30|31))");<BR>&nbsp; var reg=reg.replace(/HH/,"(([0-1][0-9])|20|21|22|23)");<BR>&nbsp; var reg=reg.replace(/H/,"([0-9]|1[0-9]|20|21|22|23)");<BR>&nbsp; var reg=reg.replace(/mm/,"([0-5][0-9])");<BR>&nbsp; var reg=reg.replace(/m/,"([0-9]|([1-5][0-9]))");<BR>&nbsp; var reg=reg.replace(/ss/,"([0-5][0-9])");<BR>&nbsp; var reg=reg.replace(/s/,"([0-9]|([1-5][0-9]))");<BR>&nbsp; reg=new RegExp("^"+reg+"$");<BR>&nbsp; if(reg.test(time)==false){//验证格式是否合法<BR>&nbsp;&nbsp;&nbsp; alert(alt);<BR>&nbsp;&nbsp;&nbsp; date.focus();<BR>&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }<BR>&nbsp; return true;<BR>}<BR>function validateDateGroup(year,month,day,alt){<BR>&nbsp; var array=new Array(31,28,31,30,31,30,31,31,30,31,30,31);<BR>&nbsp; var y=parseInt(year.value);<BR>&nbsp; var m=parseInt(month.value);<BR>&nbsp; var d=parseInt(day.value);<BR>&nbsp; var maxday=array[m-1];<BR>&nbsp; if(m==2){<BR>&nbsp;&nbsp;&nbsp; if((y%4==0&amp;&amp;y%100!=0)||y%400==0){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxday=29;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; if(d&gt;maxday){<BR>&nbsp;&nbsp;&nbsp; alert(alt);<BR>&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }<BR>&nbsp; return true;<BR>}<BR>function validateCheckbox(obj,alt){<BR>&nbsp; var rs=false;<BR>&nbsp; if(obj!=null){<BR>&nbsp;&nbsp;&nbsp; if(obj.length==null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return obj.checked;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;obj.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj[i].checked==true){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; alert(alt);<BR>&nbsp; return rs;<BR>}<BR>function validateRadio(obj,alt){<BR>&nbsp; var rs=false;<BR>&nbsp; if(obj!=null){<BR>&nbsp;&nbsp;&nbsp; if(obj.length==null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return obj.checked;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;obj.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj[i].checked==true){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; alert(alt);<BR>&nbsp; return rs;<BR>}<BR>function validateSelect(obj,alt){<BR>&nbsp; var rs=false;<BR>&nbsp; if(obj!=null){<BR>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;obj.options.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj.options[i].selected==true){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; alert(alt);<BR>&nbsp; return rs;<BR>}<BR>function validateEmail(email,alt,separator){<BR>&nbsp; var mail=trim(email.value);<BR>&nbsp; if(mail=="") return;<BR>&nbsp; var em;<BR>&nbsp; var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;<BR>&nbsp; if(separator==null){<BR>&nbsp;&nbsp;&nbsp; if(myReg.test(email.value)==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(alt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email.focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; else{<BR>&nbsp;&nbsp;&nbsp; em=email.value.split(separator);<BR>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;em.length;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em[i]=em[i].trim();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(em[i].length&gt;0&amp;&amp;myReg.test(em[i])==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(alt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email.focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; return true;<BR>}<BR>function validateForm(theForm){// 若验证通过则返回true<BR>&nbsp; var disableList=new Array();<BR>&nbsp; var field = theForm.elements; // 将表单中的所有元素放入数组<BR>&nbsp; for(var i = 0; i &lt; field.length; i++){<BR>&nbsp;&nbsp;&nbsp; var vali=theForm.validate;<BR>&nbsp;if(vali!=null){<BR>&nbsp;&nbsp; if(vali.value=="0"){<BR>&nbsp;&nbsp;&nbsp;&nbsp; var fun=vali.functionName;<BR>&nbsp;&nbsp;if(fun!=null){<BR>&nbsp;&nbsp;&nbsp; return eval(fun+"()");<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp; }<BR>&nbsp;}</P>
<P>&nbsp;&nbsp;&nbsp; var empty=false;<BR>&nbsp;&nbsp;&nbsp; var value=trim(field[i].value);<BR>&nbsp;&nbsp;&nbsp; if(value.length==0){//是否空值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; empty=true;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; var emptyInfo=field[i].emptyInfo;//空值验证<BR>&nbsp;&nbsp;&nbsp; if(emptyInfo!=null&amp;&amp;empty==true){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(emptyInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field[i].focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; var lengthInfo=field[i].lengthInfo;//最大长度验证<BR>&nbsp;&nbsp;&nbsp; if(lengthInfo!=null&amp;&amp;getStringLength(value)&gt;field[i].maxLength){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(lengthInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field[i].focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; var validatorType=field[i].validatorType;<BR>&nbsp;&nbsp;&nbsp; if(validatorType!=null){//其它javascript<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var rs=true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(validatorType=="javascript"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval("rs="+field[i].functionName+"()");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="disable"){//提交表单前disable的按钮<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disableList.length++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disableList[disableList.length-1]=field[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="Date"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateDate(theForm.elements(field[i].fieldName),field[i].format,field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="DateGroup"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateDateGroup(theForm.elements(field[i].year),theForm.elements(field[i].month),theForm.elements(field[i].day),field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="Checkbox"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateCheckbox(theForm.elements(field[i].fieldName),field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="Radio"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateRadio(theForm.elements(field[i].fieldName),field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="Select"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateSelect(theForm.elements(field[i].fieldName),field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(validatorType=="Email"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs=validateEmail(theForm.elements(field[i].fieldName),field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("验证类型不被支持, fieldName: "+field[i].name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; else{//一般验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(empty==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var v = field[i].validator; // 获取其validator属性<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!v) continue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 如果该属性不存在,忽略当前元素<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var reg=new RegExp(v);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(reg.test(field[i].value)==false){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(field[i].errorInfo);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field[i].focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; for(i=0;i&lt;disableList.length;i++){<BR>&nbsp;&nbsp;&nbsp; disableList[i].disabled=true;<BR>&nbsp; }<BR>&nbsp; return true;<BR>}<BR>&lt;/script&gt;</P><img src ="http://www.blogjava.net/lmsun/aggbug/10421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lmsun/" target="_blank">my java</a> 2005-08-18 13:14 <a href="http://www.blogjava.net/lmsun/articles/10421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将网页数据输出为Excel或Word文件</title><link>http://www.blogjava.net/lmsun/articles/10419.html</link><dc:creator>my java</dc:creator><author>my java</author><pubDate>Thu, 18 Aug 2005 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/lmsun/articles/10419.html</guid><wfw:comment>http://www.blogjava.net/lmsun/comments/10419.html</wfw:comment><comments>http://www.blogjava.net/lmsun/articles/10419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lmsun/comments/commentRss/10419.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lmsun/services/trackbacks/10419.html</trackback:ping><description><![CDATA[<P>将一个JSP页面中的&lt;%@ page contentType="text/html; charset=GBK" language="java" %&gt;替换为</P>
<P>&lt;%@ page contentType="application/vnd.ms-excel;charset=GBK" language="java"%&gt; //Excel</P>
<P>或</P>
<P>&lt;%@ page contentType="application/vnd.ms-word;charset=GBK" language="java"%&gt; //Word</P>
<P>在页面开始输出数据前中加入一行</P>
<P>&lt;%</P>
<P>response.setHeader("Content-disposition","attachment;filename=result.xls");//Excel</P>
<P>%&gt;</P>
<P>或</P>
<P>&lt;%</P>
<P>response.setHeader("Content-disposition","attachment;filename=result.doc");//Word</P>
<P>%&gt;</P>
<P>对页面中的其它部分的处理：</P>
<P>去掉导入的CSS文件（可以在页面中加入&lt;style type=”text/css”&gt;&lt;/style&gt;）</P>
<P>去掉所有的javascript或VBScript</P>
<P>其它代码不需要更改</P><img src ="http://www.blogjava.net/lmsun/aggbug/10419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lmsun/" target="_blank">my java</a> 2005-08-18 13:11 <a href="http://www.blogjava.net/lmsun/articles/10419.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最简单的JSP分页实现</title><link>http://www.blogjava.net/lmsun/articles/8451.html</link><dc:creator>my java</dc:creator><author>my java</author><pubDate>Tue, 26 Jul 2005 00:52:00 GMT</pubDate><guid>http://www.blogjava.net/lmsun/articles/8451.html</guid><wfw:comment>http://www.blogjava.net/lmsun/comments/8451.html</wfw:comment><comments>http://www.blogjava.net/lmsun/articles/8451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lmsun/comments/commentRss/8451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lmsun/services/trackbacks/8451.html</trackback:ping><description><![CDATA[最简单的JSP分页实现！<BR>&lt;title&gt;Connect DataSource&lt;/title&gt;<BR>&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %&gt;<BR>&lt;%@ include file="conn.jsp"%&gt;<BR>&lt;%<BR>Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");<BR>String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=guestbook";<BR>Connection con = DriverManager.getConnection(url,"sa","szwen");<BR>&nbsp;Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet.CONCUR_READ_ONLY);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int intPageCount;//总页数<BR>&nbsp;int intRowCount;//总记录<BR>&nbsp;int intPageSize;//每页显示记录数<BR>&nbsp;int intPage;//当前页<BR>&nbsp;int intNext;//下一页<BR>&nbsp;int intPrev;//上一页<BR>&nbsp;int i;<BR>&nbsp;String strPage;<BR>&nbsp;strPage = request.getParameter("Page");<BR>&nbsp;if(strPage == null){intPage = 1;}else{intPage = Integer.parseInt(strPage);}<BR>&nbsp;String sql = "select * from addressbook_table";<BR>&nbsp;ResultSet rs = stmt.executeQuery(sql);<BR>&nbsp;rs.last();<BR>&nbsp;intRowCount = rs.getRow();<BR>&nbsp;intPageSize = 5;<BR>&nbsp;intPageCount = (intRowCount+intPageSize-1)/intPageSize;<BR>&nbsp;if(intPage&gt;intPageCount){intPage = intPageCount;}<BR>&nbsp;if(intRowCount&lt;intPageSize){intPage = 1;}<BR>&nbsp;if(intPage&lt;0){intPage = 1;};<BR>&nbsp;i=0;<BR>&nbsp;if(intRowCount&gt;0){<BR>&nbsp;rs.absolute((intPage-1)*intPageSize+1);<BR>&nbsp;while(i&lt;intPageSize &amp;&amp; !rs.isAfterLast()){<BR>&nbsp;out.print(rs.getString("phone")+"&nbsp;&nbsp;&nbsp; ");<BR>&nbsp;out.print(rs.getString("address")+"&nbsp;&nbsp;&nbsp; ");<BR>&nbsp;out.print(rs.getString("name")+"&lt;br&gt;");<BR>&nbsp;rs.next();<BR>&nbsp;i++;<BR>&nbsp;}<BR>&nbsp;rs.close();<BR>&nbsp;stmt.close();<BR>&nbsp;}<BR>&nbsp;intNext = intPage +1;<BR>&nbsp;if(intNext&gt; intPageCount){intNext = intPageCount;}<BR>&nbsp;intPrev = intPage -1;<BR>&nbsp;if(intPrev&lt; 1){intPrev = 1;}<BR>%&gt;<BR>共 &lt;%=intRowCount%&gt; 记录 共 &lt;%=intPageCount%&gt; 页 每页显示 &lt;%=intPageSize%&gt; 条记录 &lt;a href="show.jsp?Page=&lt;%=intNext%&gt;"&gt;intNext&lt;/a&gt; &lt;a href="show.jsp?Page=&lt;%=intPrev%&gt;"&gt;intPrev&lt;/a&gt;<img src ="http://www.blogjava.net/lmsun/aggbug/8451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lmsun/" target="_blank">my java</a> 2005-07-26 08:52 <a href="http://www.blogjava.net/lmsun/articles/8451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>