<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<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>ForWork.Net</title><link>http://www.forwork.net/</link><description>快乐工作·快乐生活</description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>Copyright 2006-2008 ForWork.Net 【快乐工作·快乐生活】 Rights Reserved.&amp;amp;nbsp;  苏ICP备05070716号</copyright><pubDate>Fri, 04 Jun 2010 09:10:52 +0800</pubDate><item><title>最新微软MSDN订阅下载更新</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/424.html</link><pubDate>Fri, 04 Jun 2010 09:08:43 +0800</pubDate><guid>http://www.forwork.net/post/424.html</guid><description><![CDATA[<p>最新微软MSDN订阅下载更新</p><p><a href="http://msdn.itellyou.cn/">http://msdn.itellyou.cn/</a></p><p>包括最新的win7 vs 2010 简体中文 微软MSDN社区已经可以下载了。。 喜欢的朋友可以收藏下。。。</p>]]></description><category>资源共享</category><comments>http://www.forwork.net/post/424.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=424</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=424&amp;key=c93d91e1</trackback:ping></item><item><title>最新Adobe CS5 PhototShop CS5 FireWord CS5 DreamWeaver CS5 Flash CS5 完美破解补丁</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/423.html</link><pubDate>Mon, 17 May 2010 08:28:04 +0800</pubDate><guid>http://www.forwork.net/post/423.html</guid><description><![CDATA[<p>最新Adobe CS5 PhototShop CS5 FireWord CS5 DreamWeaver CS5 Flash CS5 完美破解补丁，不需要注册码、不需要改Hosts文件，毕竟修改Hosts的方法并不能保证长久可用。</p><p>这次的CS5通用破解补丁是由 MyCrack 大侠制作的，使用非常方便，理论上支持CS5所有程序和所有语言版本，是目前最佳的破解方法了，推荐大家使用。之前如果修改Hosts成功注册使用的朋友可以下载收藏以备日后使用&hellip;&hellip;</p><h3>Adobe CS5 通用破解补丁使用方法：</h3><h5>下面以安装 Photoshop CS5 为例：</h5><p>第一步：下载 Photoshop CS5 简体中文版 与 Adobe CS5 通用破解补丁 <br />第二步：以试用方式安装 Adobe Photoshop CS5，不需要输入序列号 <br />第三步：将破解补丁 amtlib.dll 文件复制到Photoshop CS5的安装目录，覆盖同名文件</p><p>PS：如果覆盖后还出现注册或者输入注册码的选项，选择以后注册和试用即可。其他软件破解步骤与 Photoshop CS5 没什么差别，最多就是 amtlib.dll 原文件位置不一样，大家可以用搜索软件 (推荐EveryThing) 找出来再覆盖。 <br />PS2：本补丁目前只支持32位系统，64位系统使用将会提示&ldquo;无法定位输入点 AMTplugplugRequest于动态连接库amtlib.dll&rdquo; 的错误 <br />PS3：如果你安装多个软件，例如同时装了PS CS5和 DreamWeaver CS5，那么每个不同的软件需要覆盖一次amtlib.dll</p><p><a target="_blank" href="http://www.forwork.net/upload/2010/5/abode_cs5_crack(x32).rar">完美补丁下载</a></p>]]></description><category>资源共享</category><comments>http://www.forwork.net/post/423.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=423</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=423&amp;key=5b1ef4b7</trackback:ping></item><item><title>Office 2010 最新激活KEY</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/422.html</link><pubDate>Thu, 13 May 2010 15:26:41 +0800</pubDate><guid>http://www.forwork.net/post/422.html</guid><description><![CDATA[<p>Office 2010 最新激活KEY</p><p style="text-align: left; line-height: 30px; text-indent: 2em">6QFDX-PYH2G-PPYFD-C7RJM-BBKQ8</p><p style="text-align: left; line-height: 30px; text-indent: 2em">BDD3G-XM7FB-BD2HM-YK63V-VQFDK</p><p style="text-align: left; line-height: 30px; text-indent: 2em">VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB</p><p>本机测试通过，需要的朋友下载！</p><p>如果输入key激活失败，具体的解决方法如下</p><p>Step1 &ndash; 以管理员身份运行事前准备好的mini KMS Activator v1.1；</p><p>Step2 &ndash; 点击第一项&ldquo;Install/UnInstall KMService&rdquo;安装KMService；<br />Step3 &ndash; 点击&ldquo;Activate Office 2010 VL&rdquo;开始激活office 2010 RTM，（注：部分人可能需要进行多次尝试激活）。</p><p>本KEY为网上转载，请大家自觉使用正版！</p><p>&nbsp;</p>]]></description><category>资源共享</category><comments>http://www.forwork.net/post/422.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=422</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=422&amp;key=fe475c35</trackback:ping></item><item><title>最新备案登录查询网站地址</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/421.html</link><pubDate>Fri, 07 May 2010 08:58:24 +0800</pubDate><guid>http://www.forwork.net/post/421.html</guid><description><![CDATA[<p>最近信息产业部的备案网站一直打不开<a href="http://www.miibeian.gov.cn">www.miibeian.gov.cn</a>，原以为是单位网络问题，在家也是打不开，也不知道备案网站怎么了，哎！ 做个网站真不容易，备个案更不容易。通过搜索 发现很多朋友都有这个问题，而且目前官方也没有什么解释。今天早上又尝试着打开，发现还是打不开，但一个朋友却公布了备案网站的直接IP地址访问，哈哈，不错！记录下，需要的朋友可以用下</p><p><span style="font-family: 宋体; font-size: 14px"><span id="Content104274"><a href="http://219.143.225.7" target="_blank">http://219.143.225.7</a> &nbsp; 电信 </span></span></p><p><span style="font-family: 宋体; font-size: 14px"><span id="Content104274"><a href="http://202.108.212.210" target="_blank">http://202.108.212.210</a> 铁通 </span></span></p><p><span style="font-family: 宋体; font-size: 14px"><span id="Content104274"><a href="http://202.108.212.211" target="_blank">http://202.108.212.211</a> 铁通 </span></span></p><p><span style="font-family: 宋体; font-size: 14px"><span id="Content104274"><a href="http://211.94.161.70" target="_blank">http://211.94.161.70</a> &nbsp; 网通 </span></span></p><p><span style="font-family: 宋体; font-size: 14px"><span>目前电信的IP 不能访问，其他都可以！</span></span></p>]]></description><category>杂七杂八</category><comments>http://www.forwork.net/post/421.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=421</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=421&amp;key=df3cd08a</trackback:ping></item><item><title>利用ASP控制WEB打印代码方法集合</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/420.html</link><pubDate>Sat, 01 May 2010 17:09:41 +0800</pubDate><guid>http://www.forwork.net/post/420.html</guid><description><![CDATA[<p>在用asp开发Web应用的时候，很多时候会用到打印，这里主要介绍了如何使用ASP控制Web的各种打印效果，它能够控制纵打、横打和页面边距等。 <br />　　1、控制&quot;纵打&quot;、 &quot;横打&quot;和&quot;页面的边距&quot;。 <br />　　（1）<br />&lt;script defer&gt; <br />　　function SetPrintSettings() { <br />　　// -- advanced features <br />　　factory.printing.SetMarginMeasure(2) // measure margins in inches <br />　　factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 <br />　　factory.printing.printer = &quot;HP DeskJet 870C&quot; <br />　　factory.printing.copies = 2 <br />　　factory.printing.collate = true <br />　　factory.printing.paperSize = &quot;A4&quot; <br />　　factory.printing.paperSource = &quot;Manual feed&quot; <br />　　// -- basic features <br />　　factory.printing.header = &quot;This is MeadCo&quot; <br />　　factory.printing.footer = &quot;Advanced Printing by ScriptX&quot; <br />　　factory.printing.portrait = false <br />　　factory.printing.leftMargin = 1.0 <br />　　factory.printing.topMargin = 1.0 <br />　　factory.printing.rightMargin = 1.0 <br />　　factory.printing.bottomMargin = 1.0 <br />　　} <br />　　&lt;/script&gt; <br />　　（2） <br />　　&lt;script language=&quot;javascript&quot;&gt; <br />　　function printsetup(){ <br />　　// 打印页面设置 <br />　　wb.execwb(8,1); <br />　　} <br />　　function printpreview(){ <br />　　// 打印页面预览 <br />　　<br />　　wb.execwb(7,1); <br />　　<br />　　<br />　　} <br />　　function printit() <br />　　{ <br />　　if (confirm('确定打印吗？')) { <br />　　wb.execwb(6,6) <br />　　} <br />　　} <br />　　&lt;/script&gt; <br />　　&lt;/head&gt; <br />　　&lt;body&gt; <br />　　&lt;OBJECT classid=&quot;CLSID:8856F961-340A-11D0-A96B-00C04FD705A2&quot; <br />　　height=0 id=wb name=wb width=0&gt;&lt;/OBJECT&gt; <br />　　&lt;input type=button name=button_print value=&quot;打印&quot; <br />　　 <br />　　&lt;input type=button　name=button_setup value=&quot;打印页面设置&quot; <br />　　 <br />　　&lt;input type=button　name=button_show value=&quot;打印预览&quot; <br />　　 <br />　　&lt;input type=button name=button_fh value=&quot;关闭&quot; <br />　　onclick=&quot;javascript:window.close();&quot;&gt; <br />　　------------------------------------------------ <br />　　关于这个组件还有其他的用法，列举如下： <br />　　WebBrowser.ExecWB(1,1) 打开 <br />　　Web.ExecWB(2,1) 关闭现在所有的IE窗口，并打开一个新窗口 <br />　　Web.ExecWB(4,1) 保存网页 <br />　　Web.ExecWB(6,1) 打印 <br />　　Web.ExecWB(7,1) 打印预览 <br />　　Web.ExecWB(8,1) 打印页面设置 <br />　　Web.ExecWB(10,1) 查看页面属性 <br />　　Web.ExecWB(15,1) 好像是撤销，有待确认 <br />　　Web.ExecWB(17,1) 全选 <br />　　Web.ExecWB(22,1) 刷新 <br />　　Web.ExecWB(45,1) 关闭窗体无提示 <br />　　2、分页打印 <br />　　&lt;HTML&gt; <br />　　&lt;HEAD&gt; <br />　　&lt;STYLE&gt;　　 <br />　　P {page-break-after: always} <br />　　&lt;/STYLE&gt; <br />　　&lt;/HEAD&gt; <br />　　&lt;BODY&gt; <br />　　&lt;%while not rs.eof%&gt; <br />　　&lt;P&gt;&lt;%=rs(0)%&gt;&lt;/P&gt; <br />　　&lt;%rs.movenext%&gt; <br />　　&lt;%wend%&gt; <br />　　&lt;/BODY&gt; <br />　　&lt;/HTML&gt; <br />　　3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号 <br />　　（1）ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉，打印就不出来了。 <br />　　（2）<br />&lt;HTML&gt; <br />　　&lt;HEAD&gt; <br />　　&lt;TITLE&gt; New Document &lt;/TITLE&gt; <br />　　&lt;META NAME=&quot;Generator&quot; CONTENT=&quot;EditPlus&quot;&gt; <br />　　&lt;META NAME=&quot;Author&quot; CONTENT=&quot;YC&quot;&gt; <br />　　&lt;script language=&quot;VBScript&quot;&gt; <br />　　dim hkey_root,hkey_path,hkey_key <br />　　hkey_root=&quot;HKEY_CURRENT_USER&quot; <br />　　hkey_path=&quot;\Software\Microsoft\Internet Explorer\PageSetup&quot; <br />　　'//设置网页打印的页眉页脚为空 <br />　　function pagesetup_null() <br />　　on error resume next <br />　　Set RegWsh = CreateObject(&quot;WScript.Shell&quot;) <br />　　hkey_key=&quot;\header&quot;　　 <br />　　RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&quot;&quot; <br />　　hkey_key=&quot;\footer&quot; <br />　　RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&quot;&quot; <br />　　end function <br />　　'//设置网页打印的页眉页脚为默认值 <br />　　function pagesetup_default() <br />　　on error resume next <br />　　Set RegWsh = CreateObject(&quot;WScript.Shell&quot;) <br />　　hkey_key=&quot;\header&quot;　　 <br />　　RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&quot;&amp;w&amp;b页码，&amp;p/&amp;P&quot; <br />　　hkey_key=&quot;\footer&quot; <br />　　RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&quot;&amp;u&amp;b&amp;d&quot; <br />　　end function <br />　　&lt;/script&gt; <br />　　&lt;/HEAD&gt; <br />　　&lt;BODY&gt; <br />　　&lt;br/&gt; <br />　　&lt;br/&gt; <br />　　&lt;br/&gt; <br />　　&lt;br/&gt; <br />　　&lt;br/&gt; <br />　　&lt;br/&gt;&lt;p align=center&gt; <br />　　&lt;input type=&quot;button&quot; value=&quot;清空页码&quot; &lt;input type=&quot;button&quot; value=&quot;恢复页吗&quot; <br />　　&lt;/p&gt; <br />　　&lt;/BODY&gt; <br />　　&lt;/HTML&gt;</p><div>　　4、浮动帧打印 <br />　　&lt;SCRIPT LANGUAGE=javascript&gt; <br />　　function button1_ { <br />　　var odoc=window.iframe1.document; <br />　　var r=odoc.body.createTextRange(); <br />　　var stxt=r.htmlText; <br />　　alert(stxt) <br />　　var pwin=window.open(&quot;&quot;,&quot;print&quot;); <br />　　pwin.document.write(stxt); <br />　　pwin.print(); <br />　　} <br />　　&lt;/SCRIPT&gt;</div><div>　　4、用FileSystem组件实现WEB应用中的本地特定打印 <br />　　&lt;script Language=VBScript&gt; <br />　　function print_onclick //打印函数 <br />　　dim label <br />　　label=document.printinfo.label.value //获得HTML页面的数据 <br />　　set objfs=CreateObject(&quot;Scripting.FileSystemObject&quot;) //创建FileSystem组件对象的实例 <br />　　set objprinter=objfs.CreateTextFile (&quot;LPT1:&quot;,true) //建立与打印机的连接 <br />　　objprinter.Writeline(&quot;__________________________________&quot;) //输出打印的内容 <br />　　objprinter.Writeline(&quot;| |&quot;) <br />　　objprinter.Writeline(&quot;| 您打印的数据是：&quot;&amp;label&amp; &quot; |&rdquo;) <br />　　objprinter.Writeline(&quot;| |&quot;) <br />　　objprinter.Writeline(&quot;|_________________________________|&quot;) <br />　　objprinter.close //断开与打印机的连接 <br />　　set objprinter=nothing <br />　　set objfs=nothing // 关闭FileSystem组件对象 <br />　　end function <br />　　&lt;/script&gt; <br />　　服务器端脚本： <br />　　&lt;%&hellip;&hellip;&hellip; <br />　　set conn=server.CreateObject (&quot;adodb.connection&quot;) <br />　　conn.Open &quot;DSN=name;UID=XXXX;PWD=XXXX;&quot; <br />　　set rs=server.CreateObject(&quot;adodb.recordset&quot;) <br />　　rs.Open(&ldquo;select &hellip;&hellip;&rdquo;),conn,1,1 <br />　　&hellip;&hellip;&hellip;.%&gt; //与数据库进行交互 <br />　　HTML页面编码： <br />　　&lt;HTML&gt; <br />　　&hellip;&hellip;&hellip; <br />　　&lt;FORM ID=printinfo NAME=&quot;printinfo&quot; &gt; <br />　　&lt;INPUT type=&quot;button&quot; value=&quot;打印&gt;&gt;&quot; id=print name=print &gt; //调用打印函数 <br />　　&lt;INPUT type=hidden id=text1 name=label value=&lt;%=&hellip;&hellip;&hellip;%&gt;&gt; //保存服务器端传来的数据 <br />　　&hellip;&hellip;&hellip; <br />　　&lt;/HTML&gt;<br />&nbsp;</div><p>转自：51cto.com</p>]]></description><category>技术文摘</category><comments>http://www.forwork.net/post/420.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=420</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=420&amp;key=4dce10ad</trackback:ping></item><item><title>window7 和 ie 8 下农业银行证书K宝无法登陆的解决方法</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/419.html</link><pubDate>Thu, 29 Apr 2010 14:35:01 +0800</pubDate><guid>http://www.forwork.net/post/419.html</guid><description><![CDATA[<p>Windows 7 装好后，一直没有登陆农业银行，今天帮老婆手机充值，打开农业银行，提示找到证书，点击确定，结果出现错误页面，查询网络，有朋友贴了解决方法，如下：</p><p>打开注册表编辑器<br /><br />（1）开始&rarr;运行&rarr;输入regedit<br /><br />（2）32位win7下找到，<br />[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\ZGHD Cryptographic Service Provider v1.0]<br />将Image Path值由&ldquo;GP_MINCSP.dll&rdquo;修改为&ldquo;%SystemRoot%\System32\GP_MINCSP.dll&rdquo;<br />（即增加&ldquo;%SystemRoot%\System32\&rdquo;字段），结束。<br /><br />64位win7下找到（感谢腿毛飘飘，左楠风提供），<br />[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Defaults\Provider\ZGHD Cryptographic Service Provider v1.0]<br />将Image Path值修改为&ldquo;%SystemRoot%\SysWOW64\GP_MINCSP.dll&rdquo;<br /><br />（3）无需重启，随便打开农行网银网址，出现&ldquo;正在查找凭据平铺&rdquo;，出现&ldquo;确认证书&rdquo;，点击确定即可出现&ldquo;用户口令，请输入您的K宝密码&rdquo;对话框，即可正常登陆网银。<br />&nbsp;</p><p>我的注册表有所不一样，具体键值为：%SystemRoot%\System32\ePassAutocsp11_ABChina_s.dll 大家可以参考下。</p><p>最终问题解决。从这个方面，说明很多机构对于win7 和 ie8 的支持还没有及时跟上，希望能够及时的跟进。</p>]]></description><category>技术文摘</category><comments>http://www.forwork.net/post/419.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=419</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=419&amp;key=9e3a5bd1</trackback:ping></item><item><title>在线五笔打字练习系统Flash版</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/418.html</link><pubDate>Wed, 28 Apr 2010 10:44:30 +0800</pubDate><guid>http://www.forwork.net/post/418.html</guid><description><![CDATA[<p>送给所有需要练习五笔的朋友，一个Flash版的在线五笔打字练习系统，需要的可以看下，特别适合学校里面使用。</p><p>功能包含有字根练习、一级二级简码、键名汉字、键面汉字、全码练习、词组练习，还有字根表提示</p><p>86版五笔练习，这是最多人使用的。<br />操作提示：<br />1、先选择某一练习模式，再将光标定位在输入框内。 <br />2、切换成一级简码或二级简码练习模式时请注意，编码输入后须加敲空格键。</p><p>&nbsp;</p><p><object width="400" height="300" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"><param value="http://www.forwork.net/upload/2010/4/201004281048068455.swf" name="movie" /><param value="high" name="quality" /><param value="True" name="play" /></object></p>]]></description><category>资源共享</category><comments>http://www.forwork.net/post/418.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=418</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=418&amp;key=6cb70730</trackback:ping></item><item><title>一个支持目前所有表单验证的js类</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/417.html</link><pubDate>Tue, 27 Apr 2010 08:08:51 +0800</pubDate><guid>http://www.forwork.net/post/417.html</guid><description><![CDATA[<p>在做web开发的时候很多时候需要对用户输入的数据进行规则认证，数字 邮箱&nbsp; 姓名等，在网上看到一个达人写的js 验证类，基本上囊括了所有的表单验证，大家可以参考下</p><p>Validator目前可实现的验证类型有： <br />1.是否为空；<br />2.中文字符；<br />3.双字节字符<br />4.英文；<br />5.数字；<br />6.整数；<br />7.实数；<br />8.Email地址；<br />9.使用HTTP协议的网址；<br />10.电话号码；<br />11.货币；<br />12.手机号码；<br />13.邮政编码；<br />14.<font color="#ff0000">身份证号码(1.05增强)；</font><br />15.QQ号码；<br />16.日期；<br />17.符合安全规则的密码；<br />18.某项的重复值；<br />19.两数的关系比较；<br />20.判断输入值是否在(n, m)区间；<br />21.输入字符长度限制(可按字节比较)；<br />22.对于具有相同名称的单选按钮的选中判断；<br />23.限制具有相同名称的多选按钮的选中数目；<br />24.自定义的正则表达式验证； <br /><font color="#ff0000">25.文件上传格式过滤(1.04)</font><br />运行环境(客户端)： <br />在Windows Server 2003下用IE6.0+SP1和Mozilla Firefox 1.0测试通过；<br />在Lunix RedHat 9下的Netscape测试通过；</p><p>对于客户端的表单验证，这个基于JavaScript编写的Validator基本上都可以满足，具体可以下载CHM文件：<a href="http://www.blueidea.com/articleimg/2004/11/2360/Validator.chm" target="_blank">Validator.CHM下载</a></p><p>JS代码如下：</p><textarea class="code" rows="10" cols="50">&nbsp;&lt;title&gt;表单验证类&nbsp;Validator&nbsp;v1.05&lt;/title&gt;
&nbsp;&lt;style&gt;
&nbsp;body,td{font:normal&nbsp;12px&nbsp;Verdana;color:#333333}
&nbsp;input,textarea,select,td{font:normal&nbsp;12px&nbsp;Verdana;color:#333333;border:1px&nbsp;solid&nbsp;#999999;background:#ffffff}
&nbsp;table{border-collapse:collapse;}
&nbsp;td{padding:3px}
&nbsp;input{height:20;}
&nbsp;textarea{width:80%;height:50px;overflow:auto;}
&nbsp;form{display:inline}
&nbsp;&lt;/style&gt;
&nbsp;&lt;table&nbsp;align="center"&gt;
&nbsp;&nbsp;&lt;form&nbsp;name="theForm"&nbsp;id="demo"&nbsp;method="get"&nbsp;onSubmit="return&nbsp;Validator.Validate(this,2)"&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;身份证号：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Card"&nbsp;dataType="IdCard"&nbsp;msg="身份证号错误"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;真实姓名：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Name"&nbsp;dataType="Chinese"&nbsp;msg="真实姓名只允许中文"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;ID：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="username"&nbsp;dataType="Username"&nbsp;msg="ID名不符合规定"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;英文名：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Nick"&nbsp;dataType="English"&nbsp;require="false"&nbsp;msg="英文名只允许英文字母"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;主页：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Homepage"&nbsp;require="false"&nbsp;dataType="Url"&nbsp;&nbsp;&nbsp;msg="非法的Url"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;密码：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Password"&nbsp;dataType="SafeString"&nbsp;&nbsp;&nbsp;msg="密码不符合安全规则"&nbsp;type="password"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;重复：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Repeat"&nbsp;dataType="Repeat"&nbsp;to="Password"&nbsp;msg="两次输入的密码不一致"&nbsp;type="password"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;信箱：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Email"&nbsp;dataType="Email"&nbsp;msg="信箱格式不正确"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;信箱：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Email"&nbsp;dataType="Repeat"&nbsp;to="Email"&nbsp;msg="两次输入的信箱不一致"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;QQ：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="QQ"&nbsp;require="false"&nbsp;dataType="QQ"&nbsp;msg="QQ号码不存在"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;身份证：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Card"&nbsp;dataType="IdCard"&nbsp;msg="身份证号码不正确"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;年龄：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Year"&nbsp;dataType="Range"&nbsp;msg="年龄必须在18~28之间"&nbsp;min="18"&nbsp;max="28"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;年龄1：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Year1"&nbsp;require="false"&nbsp;dataType="Compare"&nbsp;msg="年龄必须在18以上"&nbsp;to="18"&nbsp;operator="GreaterThanEqual"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;电话：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Phone"&nbsp;require="false"&nbsp;dataType="Phone"&nbsp;msg="电话号码不正确"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;手机：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Mobile"&nbsp;require="false"&nbsp;dataType="Mobile"&nbsp;msg="手机号码不正确"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;生日：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Birthday"&nbsp;dataType="Date"&nbsp;format="ymd"&nbsp;msg="生日日期不存在"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;邮政编码：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Zip"&nbsp;dataType="Custom"&nbsp;regexp="^[1-9]\d{5}$"&nbsp;msg="邮政编码不存在"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;邮政编码：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="Zip1"&nbsp;dataType="Zip"&nbsp;msg="邮政编码不存在"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;操作系统：&lt;/td&gt;&lt;td&gt;&lt;select&nbsp;name="Operation"&nbsp;dataType="Require"&nbsp;&nbsp;msg="未选择所用操作系统"&nbsp;&gt;&lt;option&nbsp;value=""&gt;选择您所用的操作系统&lt;/option&gt;&lt;option&nbsp;value="Win98"&gt;Win98&lt;/option&gt;&lt;option&nbsp;value="Win2k"&gt;Win2k&lt;/option&gt;&lt;option&nbsp;value="WinXP"&gt;WinXP&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;所在省份：&lt;/td&gt;&lt;td&gt;广东&lt;input&nbsp;name="Province"&nbsp;value="1"&nbsp;type="radio"&gt;陕西&lt;input&nbsp;name="Province"&nbsp;value="2"&nbsp;type="radio"&gt;浙江&lt;input&nbsp;name="Province"&nbsp;value="3"&nbsp;type="radio"&gt;江西&lt;input&nbsp;name="Province"&nbsp;value="4"&nbsp;type="radio"&nbsp;dataType="Group"&nbsp;&nbsp;msg="必须选定一个省份"&nbsp;&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;爱好：&lt;/td&gt;&lt;td&gt;运动&lt;input&nbsp;name="Favorite"&nbsp;value="1"&nbsp;type="checkbox"&gt;上网&lt;input&nbsp;name="Favorite"&nbsp;value="2"&nbsp;type="checkbox"&gt;听音乐&lt;input&nbsp;name="Favorite"&nbsp;value="3"&nbsp;type="checkbox"&gt;看书&lt;input&nbsp;name="Favorite"&nbsp;value="4"&nbsp;type="checkbox""&nbsp;dataType="Group"&nbsp;min="2"&nbsp;max="3"&nbsp;&nbsp;msg="必须选择2~3种爱好"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;自我介绍：&lt;/td&gt;&lt;td&gt;&lt;textarea&nbsp;name="Description"&nbsp;dataType="Limit"&nbsp;max="10"&nbsp;&nbsp;msg="自我介绍内容必须在10个字之内"&gt;中文是一个字&lt;/textarea&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;自传：&lt;/td&gt;&lt;td&gt;&lt;textarea&nbsp;name="History"&nbsp;dataType="LimitB"&nbsp;min="3"&nbsp;max="10"&nbsp;&nbsp;msg="自传内容必须在[3,10]个字节之内"&gt;中文是两个字节t&lt;/textarea&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&gt;相片上传：&lt;/td&gt;&lt;td&gt;&lt;input&nbsp;name="up"&nbsp;dataType="Filter"&nbsp;msg="非法的文件格式"&nbsp;type="file"&nbsp;accept="jpg,&nbsp;gif,&nbsp;png"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&lt;td&nbsp;colspan="2"&gt;&lt;input&nbsp;name="Submit"&nbsp;type="submit"&nbsp;value="确定提交"&gt;&lt;input&nbsp;onClick="Validator.Validate(document.getElementById('demo'))"&nbsp;value="检验模式1"&nbsp;type="button"&gt;&lt;input&nbsp;onClick="Validator.Validate(document.getElementById('demo'),2)"&nbsp;value="检验模式2"&nbsp;type="button"&gt;&lt;input&nbsp;onClick="Validator.Validate(document.getElementById('demo'),3)"&nbsp;value="检验模式3"&nbsp;type="button"&gt;&lt;/td&gt;
&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;/form&gt;
&nbsp;&lt;/table&gt;
&lt;script&gt;
&nbsp;&nbsp;/*************************************************
&nbsp;&nbsp;Validator&nbsp;v1.05
&nbsp;&nbsp;code&nbsp;by&nbsp;我佛山人
&nbsp;&nbsp;wfsr@msn.com
*************************************************/
&nbsp;Validator&nbsp;=&nbsp;{
&nbsp;&nbsp;Require&nbsp;:&nbsp;/.+/,
&nbsp;&nbsp;Email&nbsp;:&nbsp;/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
&nbsp;&nbsp;Phone&nbsp;:&nbsp;/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
&nbsp;&nbsp;Mobile&nbsp;:&nbsp;/^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
&nbsp;&nbsp;Url&nbsp;:&nbsp;/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/,
&nbsp;&nbsp;IdCard&nbsp;:&nbsp;"this.IsIdCard(value)",
&nbsp;&nbsp;Currency&nbsp;:&nbsp;/^\d+(\.\d+)?$/,
&nbsp;&nbsp;Number&nbsp;:&nbsp;/^\d+$/,
&nbsp;&nbsp;Zip&nbsp;:&nbsp;/^[1-9]\d{5}$/,
&nbsp;&nbsp;QQ&nbsp;:&nbsp;/^[1-9]\d{4,8}$/,
&nbsp;&nbsp;Integer&nbsp;:&nbsp;/^[-\+]?\d+$/,
&nbsp;&nbsp;Double&nbsp;:&nbsp;/^[-\+]?\d+(\.\d+)?$/,
&nbsp;&nbsp;English&nbsp;:&nbsp;/^[A-Za-z]+$/,
&nbsp;&nbsp;Chinese&nbsp;:&nbsp;&nbsp;/^[\u0391-\uFFE5]+$/,
&nbsp;&nbsp;Username&nbsp;:&nbsp;/^[a-z]\w{3,}$/i,
&nbsp;&nbsp;UnSafe&nbsp;:&nbsp;/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*)|.{0,5})$|\s/,
&nbsp;&nbsp;IsSafe&nbsp;:&nbsp;function(str){return&nbsp;!this.UnSafe.test(str);},
&nbsp;&nbsp;SafeString&nbsp;:&nbsp;"this.IsSafe(value)",
&nbsp;&nbsp;Filter&nbsp;:&nbsp;"this.DoFilter(value,&nbsp;getAttribute('accept'))",
&nbsp;&nbsp;Limit&nbsp;:&nbsp;"this.limit(value.length,getAttribute('min'),&nbsp;&nbsp;getAttribute('max'))",
&nbsp;&nbsp;LimitB&nbsp;:&nbsp;"this.limit(this.LenB(value),&nbsp;getAttribute('min'),&nbsp;getAttribute('max'))",
&nbsp;&nbsp;Date&nbsp;:&nbsp;"this.IsDate(value,&nbsp;getAttribute('min'),&nbsp;getAttribute('format'))",
&nbsp;&nbsp;Repeat&nbsp;:&nbsp;"value&nbsp;==&nbsp;document.getElementsByName(getAttribute('to'))[0].value",
&nbsp;&nbsp;Range&nbsp;:&nbsp;"getAttribute('min')&nbsp;&lt;&nbsp;(value|0)&nbsp;&&&nbsp;(value|0)&nbsp;&lt;&nbsp;getAttribute('max')",
&nbsp;&nbsp;Compare&nbsp;:&nbsp;"this.compare(value,getAttribute('operator'),getAttribute('to'))",
&nbsp;&nbsp;Custom&nbsp;:&nbsp;"this.Exec(value,&nbsp;getAttribute('regexp'))",
&nbsp;&nbsp;Group&nbsp;:&nbsp;"this.MustChecked(getAttribute('name'),&nbsp;getAttribute('min'),&nbsp;getAttribute('max'))",
&nbsp;&nbsp;ErrorItem&nbsp;:&nbsp;[document.forms[0]],
&nbsp;&nbsp;ErrorMessage&nbsp;:&nbsp;["以下原因导致提交失败：\t\t\t\t"],
&nbsp;&nbsp;Validate&nbsp;:&nbsp;function(theForm,&nbsp;mode){
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;obj&nbsp;=&nbsp;theForm&nbsp;||&nbsp;event.srcElement;
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;count&nbsp;=&nbsp;obj.elements.length;
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorMessage.length&nbsp;=&nbsp;1;
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem.length&nbsp;=&nbsp;1;
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[0]&nbsp;=&nbsp;obj;
&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=0;i&lt;count;i++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with(obj.elements[i]){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;_dataType&nbsp;=&nbsp;getAttribute("dataType");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof(_dataType)&nbsp;==&nbsp;"object"&nbsp;||&nbsp;typeof(this[_dataType])&nbsp;==&nbsp;"undefined")&nbsp;&nbsp;continue;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ClearState(obj.elements[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(getAttribute("require")&nbsp;==&nbsp;"false"&nbsp;&&&nbsp;value&nbsp;==&nbsp;"")&nbsp;continue;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(_dataType){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"IdCard"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Date"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Repeat"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Range"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Compare"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Custom"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Group"&nbsp;:&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Limit"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"LimitB"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"SafeString"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"Filter"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!eval(this[_dataType]))&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.AddError(i,&nbsp;getAttribute("msg"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!this[_dataType].test(value)){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.AddError(i,&nbsp;getAttribute("msg"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if(this.ErrorMessage.length&nbsp;&gt;&nbsp;1){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode&nbsp;=&nbsp;mode&nbsp;||&nbsp;1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;errCount&nbsp;=&nbsp;this.ErrorItem.length;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(mode){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=1;i&lt;errCount;i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[i].style.color&nbsp;=&nbsp;"red";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(this.ErrorMessage.join("\n"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[1].focus();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=1;i&lt;errCount;i++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;span&nbsp;=&nbsp;document.createElement("SPAN");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;span.id&nbsp;=&nbsp;"__ErrorMessagePanel";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;span.style.color&nbsp;=&nbsp;"red";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[i].parentNode.appendChild(span);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;span.innerHTML&nbsp;=&nbsp;this.ErrorMessage[i].replace(/\d+:/,"*");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(e){alert(e.description);}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[1].focus();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(this.ErrorMessage.join("\n"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;
&nbsp;&nbsp;},
&nbsp;&nbsp;limit&nbsp;:&nbsp;function(len,min,&nbsp;max){
&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;=&nbsp;min&nbsp;||&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;max&nbsp;=&nbsp;max&nbsp;||&nbsp;Number.MAX_VALUE;
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;min&nbsp;&lt;=&nbsp;len&nbsp;&&&nbsp;len&nbsp;&lt;=&nbsp;max;
&nbsp;&nbsp;},
&nbsp;&nbsp;LenB&nbsp;:&nbsp;function(str){
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;str.replace(/[^\x00-\xff]/g,"**").length;
&nbsp;&nbsp;},
&nbsp;&nbsp;ClearState&nbsp;:&nbsp;function(elem){
&nbsp;&nbsp;&nbsp;&nbsp;with(elem){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(style.color&nbsp;==&nbsp;"red")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.color&nbsp;=&nbsp;"";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;lastNode&nbsp;=&nbsp;parentNode.childNodes[parentNode.childNodes.length-1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(lastNode.id&nbsp;==&nbsp;"__ErrorMessagePanel")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parentNode.removeChild(lastNode);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;},
&nbsp;&nbsp;AddError&nbsp;:&nbsp;function(index,&nbsp;str){
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorItem[this.ErrorItem.length]&nbsp;=&nbsp;this.ErrorItem[0].elements[index];
&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorMessage[this.ErrorMessage.length]&nbsp;=&nbsp;this.ErrorMessage.length&nbsp;+&nbsp;":"&nbsp;+&nbsp;str;
&nbsp;&nbsp;},
&nbsp;&nbsp;Exec&nbsp;:&nbsp;function(op,&nbsp;reg){
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;RegExp(reg,"g").test(op);
&nbsp;&nbsp;},
&nbsp;&nbsp;compare&nbsp;:&nbsp;function(op1,operator,op2){
&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(operator)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"NotEqual":
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;!=&nbsp;op2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"GreaterThan":
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;&gt;&nbsp;op2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"GreaterThanEqual":
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;&gt;=&nbsp;op2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"LessThan":
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;&lt;&nbsp;op2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"LessThanEqual":
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;&lt;=&nbsp;op2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(op1&nbsp;==&nbsp;op2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;},
&nbsp;&nbsp;MustChecked&nbsp;:&nbsp;function(name,&nbsp;min,&nbsp;max){
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;groups&nbsp;=&nbsp;document.getElementsByName(name);
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;hasChecked&nbsp;=&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;=&nbsp;min&nbsp;||&nbsp;1;
&nbsp;&nbsp;&nbsp;&nbsp;max&nbsp;=&nbsp;max&nbsp;||&nbsp;groups.length;
&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=groups.length-1;i&gt;=0;i--)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(groups[i].checked)&nbsp;hasChecked++;
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;min&nbsp;&lt;=&nbsp;hasChecked&nbsp;&&&nbsp;hasChecked&nbsp;&lt;=&nbsp;max;
&nbsp;&nbsp;},
&nbsp;&nbsp;DoFilter&nbsp;:&nbsp;function(input,&nbsp;filter){
return&nbsp;new&nbsp;RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g,&nbsp;filter.split(/\s*,\s*/).join("|")),&nbsp;"gi").test(input);
&nbsp;&nbsp;},
&nbsp;&nbsp;IsIdCard&nbsp;:&nbsp;function(number){
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date,&nbsp;Ai;
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;verify&nbsp;=&nbsp;"10x98765432";
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Wi&nbsp;=&nbsp;[7,&nbsp;9,&nbsp;10,&nbsp;5,&nbsp;8,&nbsp;4,&nbsp;2,&nbsp;1,&nbsp;6,&nbsp;3,&nbsp;7,&nbsp;9,&nbsp;10,&nbsp;5,&nbsp;8,&nbsp;4,&nbsp;2];
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;area&nbsp;=&nbsp;['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;re&nbsp;=&nbsp;number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
&nbsp;&nbsp;&nbsp;&nbsp;if(re&nbsp;==&nbsp;null)&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;if(re[1]&nbsp;&gt;=&nbsp;area.length&nbsp;||&nbsp;area[re[1]]&nbsp;==&nbsp;"")&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;if(re[2].length&nbsp;==&nbsp;12){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ai&nbsp;=&nbsp;number.substr(0,&nbsp;17);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;=&nbsp;[re[9],&nbsp;re[10],&nbsp;re[11]].join("-");
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ai&nbsp;=&nbsp;number.substr(0,&nbsp;6)&nbsp;+&nbsp;"19"&nbsp;+&nbsp;number.substr(6);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;=&nbsp;["19"&nbsp;+&nbsp;re[4],&nbsp;re[5],&nbsp;re[6]].join("-");
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if(!this.IsDate(date,&nbsp;"ymd"))&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sum&nbsp;=&nbsp;0;
&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i&nbsp;=&nbsp;0;i&lt;=16;i++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;Ai.charAt(i)&nbsp;*&nbsp;Wi[i];
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;Ai&nbsp;+=&nbsp;&nbsp;verify.charAt(sum%11);
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(number.length&nbsp;==15&nbsp;||&nbsp;number.length&nbsp;==&nbsp;18&nbsp;&&&nbsp;number&nbsp;==&nbsp;Ai);
&nbsp;&nbsp;},
&nbsp;&nbsp;IsDate&nbsp;:&nbsp;function(op,&nbsp;formatString){
&nbsp;&nbsp;&nbsp;&nbsp;formatString&nbsp;=&nbsp;formatString&nbsp;||&nbsp;"ymd";
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;m,&nbsp;year,&nbsp;month,&nbsp;day;
&nbsp;&nbsp;&nbsp;&nbsp;switch(formatString){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"ymd"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;op.match(new&nbsp;RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(m&nbsp;==&nbsp;null&nbsp;)&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;day&nbsp;=&nbsp;m[6];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month&nbsp;=&nbsp;m[5]*1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year&nbsp;=&nbsp;&nbsp;(m[2].length&nbsp;==&nbsp;4)&nbsp;?&nbsp;m[2]&nbsp;:&nbsp;GetFullYear(parseInt(m[3],&nbsp;10));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"dmy"&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;op.match(new&nbsp;RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(m&nbsp;==&nbsp;null&nbsp;)&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;day&nbsp;=&nbsp;m[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month&nbsp;=&nbsp;m[3]*1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year&nbsp;=&nbsp;(m[5].length&nbsp;==&nbsp;4)&nbsp;?&nbsp;m[5]&nbsp;:&nbsp;GetFullYear(parseInt(m[6],&nbsp;10));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if(!parseInt(month))&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;month&nbsp;=&nbsp;month==0&nbsp;?12:month;
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date&nbsp;=&nbsp;new&nbsp;Date(year,&nbsp;month-1,&nbsp;day);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(typeof(date)&nbsp;==&nbsp;"object"&nbsp;&&&nbsp;year&nbsp;==&nbsp;date.getFullYear()&nbsp;&&&nbsp;month&nbsp;==&nbsp;(date.getMonth()+1)&nbsp;&&&nbsp;day&nbsp;==&nbsp;date.getDate());
&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;GetFullYear(y){return&nbsp;((y&lt;30&nbsp;?&nbsp;"20"&nbsp;:&nbsp;"19")&nbsp;+&nbsp;y)|0;}
&nbsp;&nbsp;}
&nbsp;}
&lt;/script&gt;</textarea>]]></description><category>技术文摘</category><comments>http://www.forwork.net/post/417.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=417</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=417&amp;key=23bb7fb8</trackback:ping></item><item><title>[转]修改本地Host文件的小软件支持mac window7</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/416.html</link><pubDate>Sun, 25 Apr 2010 14:24:46 +0800</pubDate><guid>http://www.forwork.net/post/416.html</guid><description><![CDATA[<p>很多时候，我们都需要修改本地host文件，来把域名DNS解析重新定向，在网上正好看到有个软件HostsManager v0.4.1 ，可以用来直接管理本地的Host文件，进行域名和IP地址的添加删除，如图：</p><p>&nbsp;</p><p><img title="" alt="" src="http://www.forwork.net/upload/2010/4/201004251429293663.png" onload="ResizeImage(this,520)" /></p><p>软件支持mac 和windows系列，如果在windows 7 允许，需要以管理员权限运行。</p><p>下载：</p><ul sizset="11" sizcache="9">    <li sizset="11" sizcache="9">For Mac OS X: <a onclick="javascript:pageTracker._trackPageview('/outgoing/ohdarling.googlecode.com/files/HostsManager-v0.4.1-mac.zip');" href="http://ohdarling.googlecode.com/files/HostsManager-v0.4.1-mac.zip"><font color="#0071bb">HostsManager for Mac</font></a></li>    <li sizset="12" sizcache="9">For Windows:&nbsp;<a onclick="javascript:pageTracker._trackPageview('/outgoing/ohdarling.googlecode.com/files/HostsManager-v0.4.1-win.zip');" href="http://ohdarling.googlecode.com/files/HostsManager-v0.4.1-win.zip"><font color="#0071bb">HostsManager for Windows</font></a></li></ul><p>&nbsp;</p>]]></description><category>资源共享</category><comments>http://www.forwork.net/post/416.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=416</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=416&amp;key=976dfc52</trackback:ping></item><item><title>asp的去除特殊空格的解决方法</title><author>1316045@qq.com (Person01)</author><link>http://www.forwork.net/post/415.html</link><pubDate>Thu, 25 Mar 2010 17:07:11 +0800</pubDate><guid>http://www.forwork.net/post/415.html</guid><description><![CDATA[<p>&nbsp;最近在做一个我们本地的信息技术调研系统，采用的ajax无刷新处理数据，在处理输出内容的时候要求过滤所有html script style 等样式，保留文字，样式是过滤了，但js 脚步还是一直提示错误，看代码 原来输出的文字中，有空格，检查过滤语句 trim 正确啊，而且还用了replace(str,&quot; &quot;,&quot;&quot;) &nbsp;replace(str,&quot;&amp;nbsp &quot;,&quot;&quot;)&nbsp;replace(str,chr(32),&quot;&quot;) 可输出结果还是错误，空格还是在，后才才发现，原来这样的结果只出现在word中导入的数据，发现word中的空格要 用chr(255) 才能替换掉，哎，，奇怪的，不管怎么样，问题解决，记录下。</p>]]></description><category>技术文摘</category><comments>http://www.forwork.net/post/415.html#comment</comments><wfw:comment>http://www.forwork.net/</wfw:comment><wfw:commentRss>http://www.forwork.net/feed.asp?cmt=415</wfw:commentRss><trackback:ping>http://www.forwork.net/cmd.asp?act=tb&amp;id=415&amp;key=7bf6089b</trackback:ping></item></channel></rss>
