<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lizongbo at 618119.com &#187; Web</title>
	<atom:link href="http://618119.com/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:25:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Android4.0系统浏览器支持window.performance API了</title>
		<link>http://618119.com/archives/2012/01/31/217.html</link>
		<comments>http://618119.com/archives/2012/01/31/217.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:25:11 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=217</guid>
		<description><![CDATA[Android4.0系统浏览器支持window.performance API了 window.performance API是HTML5规范的一部分， window.performance规范的官方文档在： https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html 目前还是草稿阶段，中文介绍可以参考： http://www.cnblogs.com/_franky/archive/2011/11/07/2238980.html webkit的测试用例和属性列表可以参考： http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance.html http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance-expected.txt Android4.0系统自带的浏览器实现了这一规范，并且还扩展实现window.performance.memory。 通过JavaScript实际测试结果如下： window.performance.memory=[object MemoryInfo] window.performance.timing=[object PerformanceTiming] window.performance.navigation=[object PerformanceNavigation] window.performance.timing.connectStart=1328016452403 window.performance.timing.responseStart=1328016452403 window.performance.timing.domLoading=1328016453857 window.performance.timing.connectEnd=1328016452403 window.performance.timing.domInteractive=0 window.performance.timing.fetchStart=1328016452403 window.performance.timing.secureConnectionStart=0 window.performance.timing.domainLookupStart=1328016452403 window.performance.timing.responseEnd=0 window.performance.timing.requestStart=1328016452403 window.performance.timing.loadEventEnd=0 window.performance.timing.domComplete=0 window.performance.timing.redirectStart=0 window.performance.timing.unloadEventEnd=1328016453646 window.performance.timing.domContentLoadedEventStart=0 window.performance.timing.domContentLoadedEventEnd=0 window.performance.timing.domainLookupEnd=1328016452403 window.performance.timing.navigationStart=1328016452402 window.performance.timing.unloadEventStart=1328016453646 window.performance.timing.loadEventStart=0 window.performance.timing.redirectEnd=0 window.performance.navigation.redirectCount=0 window.performance.navigation.type=1 window.performance.navigation.TYPE_NAVIGATE=0 window.performance.navigation.TYPE_RELOAD=1 window.performance.navigation.TYPE_BACK_FORWARD=2 window.performance.navigation.TYPE_RESERVED=255 window.performance.memory.totalJSHeapSize=0 window.performance.memory.usedJSHeapSize=0 window.performance.memory.jsHeapSizeLimit=0 PS:Android从2.1版本还扩展实现了navigator.connection： 通过JavaScript测试结果如下： navigator.connection.type=4 navigator.connection.UNKNOWN=0 navigator.connection.ETHERNET=1 navigator.connection.WIFI=2 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2012/01/31/217.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机wap网站开发过程中通过dtd校验来检查wap1.0和wap2.0的页面语法</title>
		<link>http://618119.com/archives/2011/08/21/212.html</link>
		<comments>http://618119.com/archives/2011/08/21/212.html#comments</comments>
		<pubDate>Sun, 21 Aug 2011 05:40:06 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[WAP]]></category>
		<category><![CDATA[wap1.0]]></category>
		<category><![CDATA[wap2.0]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[手机]]></category>

		<guid isPermaLink="false">http://618119.com/?p=212</guid>
		<description><![CDATA[手机wap网站开发过程中通过dtd校验来检查wap1.0和wap2.0的页面语法 对手机wap网站的wap1.0和wap2.0页面内容进行dtd的校验非常有价值，既可以保证页面对移动终端的兼容性，也能促使开发人员写出高质量的代码。 以前早期在做普通web页面开发的时候，对html的语法一知半解就开搞，标签不闭合，嵌套错误等问题从来没注意过，只管在IE6里打开能正常显示即可， 结果带来的后果就是在页面某个位置需要插入一段新内容时，整个页面就错位了，变得非常难看，也不知道怎么样来搞好，痛苦万分。 后来进行的是wap页面开发，wap页面用的是wap1.0的xml，加上各种山寨手机对wap页面的解析可不像电脑上的浏览器那样可以对错误的写法进行兼容，于是各种兼容性问题就出来了。 因此学会了用m3gate打开页面进行检查，只有m3gate打开时不出错的页面，才能放心的在各种山寨上正常显示而不出错。 再到后来，经过学习和总结，发现m3gate的检查其实和dtd校验的效果是一样的，于是摸索出通过dtd校验来发现标签嵌套错误等问题。 移动终端的发展是日新月异，很快就进入到了wap2.0时代，当然这个时候的手机浏览器对wap2.0的兼容性就好多了。 一些小的错误，也能兼容掉，但是难免也出现莫名其妙的错误，由于wap2.0的xml元素定义用的也还是dtd，因此继续用dtd校验来搞定。 wap1.0和wap2.0的自动化监控校验流程如下： 测试工具访问各个页面，获取对应的xml内容，保存为字符串，然后将页面的dtd声明部分，替换为对应的本地声明映射（这样避免联网获取dtd文件而影响性能）， 生成新的字符串，然后使用java的xml parser进行解析，解析过程中如果有抛出各种异常，那就是把页面内容有错的地方全部揪出来了，再通知开发人员进行页面内容的bug修复。 通常比如img元素缺少alt属性等问题都可以及时发现。 正式环境则通过自动化监控脚本定期访问业务进行检查。 进行dtd校验的相关代码如下： 1.将远程的dtd等实体解析映射到本地的LocalEntityResolver（自动化监控中是通过字符串替换来将dtd的声明替换为本地路径，我是直接通过EntityResolver来进行映射）： [code] package com.lizongbo.xml; import java.io.IOException; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; /** * 将xml组件依赖的远程的schema文件都映射到本地 * * @author lizongbo * */ public class LocalEntityResolver implements EntityResolver { @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { System.out.println("publicId==" [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2011/08/21/212.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从google的json接口获取地理位置信息的Java代码</title>
		<link>http://618119.com/archives/2011/05/05/209.html</link>
		<comments>http://618119.com/archives/2011/05/05/209.html#comments</comments>
		<pubDate>Thu, 05 May 2011 14:55:07 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[IP]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[cellid]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[lbs]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://618119.com/?p=209</guid>
		<description><![CDATA[从google的json接口获取地理位置信息的Java代码 google 提供了公开的接口，通过，这个接口，根据gps或基站信息或wifi热点信息来获取当前位置的地理信息. gps信息是经纬度，基站信息是基站的cellid等信息，wifi热点信息是wifi的mac地址是热点名字，信号强度等。 因此可以通过java程序获取相应信息，在LBS项目中可以用上： api接口定义描述在： http://code.google.com/p/gears/wiki/GeolocationAPI Java代码如下： [code] package com.lizongbo.geo; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import com.lizongbo.org.json.JSONArray; import com.lizongbo.org.json.JSONException; import com.lizongbo.org.json.JSONObject; /** * 从google的json接口获取地理位置信息的代码 * * @author lizongbo * */ public class GeoTest { /** * @param args * @throws Exception */ public static void main(String[] args) [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2011/05/05/209.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>使用CRLFFilter过滤HTTP应答头信息名称和值的非法字符防止CRLF注入攻击</title>
		<link>http://618119.com/archives/2010/11/29/189.html</link>
		<comments>http://618119.com/archives/2010/11/29/189.html#comments</comments>
		<pubDate>Mon, 29 Nov 2010 02:02:10 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CRLF]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[Xss]]></category>

		<guid isPermaLink="false">http://618119.com/?p=189</guid>
		<description><![CDATA[使用CRLFFilter过滤http应答中头信息名称和值的非法字符，防止CRLF注入攻击 经过测试Resin的response.addHeader方法也没做header名字和值的检查，因此如果webapp代码写法不当的话，将导致CRLF注入攻击， 例如一个页面从url参数中获取地址燃尽进行跳转，如果url地址存在“%0d%0a”编码表示的CRLF而未被检测过滤(java.net.URL解析不会出错，必须用java.net.URI才行)，将产生安漏洞。 通过下面的代码可以重现这个Xss漏洞攻击。 jsp代码： &#60;% response.addHeader(&#8220;X-Locationaaa: http://mqq.im/\r\nX-tesh&#8221;,&#8221;aaa&#8221;); response.addHeader(&#8220;X-Locationbbb: 汉字/\r\nX-teshbbb&#8221;,&#8221;aaa&#8221;); //下面的goUrl可以从URL的参数中获取，如果url地址存在“%0d%0a”编码表示的CRLF而未被检测过滤(java.net.URL解析不会出错，必须用java.net.URI才行)，将产生漏洞。 String goUrl=&#8221;http://lizongbo.com/\r\nX-Location: http://618119.com/&#8221;; //goUrl=java.net.URLEncoder.encode(goUrl, &#8220;UTF-8&#8243;); response.sendError(403,goUrl); %&#62; 在Firefox中访问jsp，使用Live HTTP headers 可以看到生成的实际head如下： HTTP/1.1 403 http://lizongbo.com/ X-Location: http://618119.com/ Server: Resin/4.0.10 X-Locationaaa: http://mqq.im/ X-tesh: aaa X-Locationbbb: 汉字 X-teshbbb: aaa Content-Type: text/html; charset=utf-8 Content-Length: 216 Date: Tue, 09 Nov 2010 02:37:48 GMT 因此封装过滤器代码如下： [code] package com.lizongbo.web.filter; import java.io.IOException; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/11/29/189.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描</title>
		<link>http://618119.com/archives/2010/11/23/194.html</link>
		<comments>http://618119.com/archives/2010/11/23/194.html#comments</comments>
		<pubDate>Tue, 23 Nov 2010 13:41:14 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[QRCode]]></category>
		<category><![CDATA[zxing]]></category>
		<category><![CDATA[二维码]]></category>
		<category><![CDATA[条形码]]></category>

		<guid isPermaLink="false">http://618119.com/?p=194</guid>
		<description><![CDATA[使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描 zxing是一个条形码和二维码生成及识别的java开源组件，QRcode的中文名字是：QR快速响应矩阵码。 1.下载zxing最新的包 到zxing的主页： http://code.google.com/p/zxing/ 下载 http://zxing.googlecode.com/files/ZXing-1.6.zip http://zxing.googlecode.com/files/BarcodeScanner3.52.apk 来源：http://code.google.com/p/zxing/downloads/list 其中BarcodeScanner3.5.2.apk是安装在Android操作系统的手机上的条码扫描器安装包。 条码扫描器的j2me版本下载地址为： http://zxing.org/w/BarcodeReader.jad http://zxing.org/w/BarcodeReader.jar 解压为： D:\Java\zxing-1.6 在dos窗口下进入到：D:\Java\zxing-1.6\core，然后运行ant命令进行编译 (必须先安装配置了ant。 ant最新版的下载地址为：http://ant.apache.org/bindownload.cgi 下载解压后在系统的环境变量中配置ANT_HOME：例如：ANT_HOME=D:\Java\apache-ant-1.7.0； Path中必须有ant的bin目录，例如： Path=D:\Java\jdk1.6.0_21\bin;D:\Java\apache-maven-2.0.9\bin;D:\Perl\site\bin;D:\ Perl\bin;D:\Java\apache-ant-1.7.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\ System32\Wbem;D:\Programs\svn-win32-1.5.4\bin;C:\Program Files\TortoiseSVN\bin;C :\Program Files\QuickTime\QTSystem\ ) 编译结果如下： D:\Java\zxing-1.6\core>ant Buildfile: build.xml clean: build: init: compile: [mkdir] Created dir: D:\Java\zxing-1.6\core\build [javac] Compiling 171 source files to D:\Java\zxing-1.6\core\build [jar] Building jar: D:\Java\zxing-1.6\core\core.jar BUILD SUCCESSFUL Total time: 6 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/11/23/194.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>根据sitemap.org的schema使用JAXB生成sitemap.xml的读写方法</title>
		<link>http://618119.com/archives/2010/11/21/187.html</link>
		<comments>http://618119.com/archives/2010/11/21/187.html#comments</comments>
		<pubDate>Sun, 21 Nov 2010 05:37:17 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[JAXB]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[百度]]></category>

		<guid isPermaLink="false">http://618119.com/?p=187</guid>
		<description><![CDATA[根据sitemap.org的schema使用JAXB生成sitemap.xml的读写方法 sitemap协议的中文说明在： http://sitemaps.org/zh_CN/protocol.php 对应的schema在： Sitemap 的 XML 格式定义: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd Sitemap 索引文件格式定义：http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd 向google提交sitemap.xml是在： https://www.google.com/webmasters/tools/home?hl=zh_CN 向百度提交sitemap.xml是在：http://sitemap.baidu.com/ xsd文件生成java代码的操作步骤如下： 1.下载xsd文件保存到D:\dev\xsds。 2.在JDK的bin目录下运行xjc命令生成java文件： D:\dev\Java\jdk1.6.0_22\bin&#62;xjc -d D:\dev\javasrc -p com.lizongbo.web.sitemaps.sitemap D:\dev\xsds\sitemap.xsd parsing a schema&#8230; compiling a schema&#8230; com\lizongbo\web\sitemaps\sitemap\ObjectFactory.java com\lizongbo\web\sitemaps\sitemap\TChangeFreq.java com\lizongbo\web\sitemaps\sitemap\TUrl.java com\lizongbo\web\sitemaps\sitemap\Urlset.java com\lizongbo\web\sitemaps\sitemap\package-info.java D:\dev\Java\jdk1.6.0_22\bin&#62;xjc -d D:\dev\javasrc -p com.lizongbo.web.sitemaps.siteindex D:\dev\xsds\siteindex.xsd parsing a schema&#8230; compiling a schema&#8230; com\lizongbo\web\sitemaps\siteindex\ObjectFactory.java com\lizongbo\web\sitemaps\siteindex\Sitemapindex.java com\lizongbo\web\sitemaps\siteindex\TSitemap.java com\lizongbo\web\sitemaps\siteindex\package-info.java 3.将java文件都复制到java工程的src目录的对应包中。 4.将xsd文件复制到java工程的com.lizongbo.web.sitemaps包对应的文件夹中。 5.封装工具类SitemapUtil.java，代码如下： [code] package [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/11/21/187.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将wml转换成html的方法。</title>
		<link>http://618119.com/archives/2008/09/07/108.html</link>
		<comments>http://618119.com/archives/2008/09/07/108.html#comments</comments>
		<pubDate>Sun, 07 Sep 2008 08:07:56 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[wml]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/09/07/108.html</guid>
		<description><![CDATA[Opera是直接支持wml的，但是有不少bug。 Firefox需要插件wmlbrowser来进行转换。 IE没法直接支持wml显示，但是有个在线转换的工具，通过中间代理的方式来获取内容，再通过js进行转换，效果一般。 今天在查看httpunit相关资料的时候，发现可以通过wmlbrowser的源代码，将wml转换成html，再借助httpunit的html支持， 来实现对wml的支持，因此实现针对wap网站的测试。 简单体验了一下， 首先下载，http://ftp.osuosl.org/pub/mozdev/wmlbrowser/wmlbrowser-0.7.18.xpi。 解压找到 wmlbrowser.jar，在从wmlbrowser.jar\content\wmlbrowser中提取wml.css，wml.js，wml.xsl三个文件。 写一个测试的wml，取名为test.xml 再第一行后面加上： &#60; ?xml-stylesheet href=&#8217;wml.xsl&#8217; type=&#8217;text/xsl&#8217; ? &#62; 编辑 wml.xsl，将 &#60;script type=&#8221;text/javascript&#8221; src=&#8221;chrome://wmlbrowser/content/wml.js&#8221;&#62;// hack&#60;/script&#62; &#60;link href=&#8221;chrome://wmlbrowser/content/wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62; 改成 &#60;script type=&#8221;text/javascript&#8221; src=&#8221;wml.js&#8221;&#62;// hack&#60;/script&#62; &#60;link href=&#8221;wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62; 然后保存。 用ie打开test.xml，可以看到wml被正常转换成html了。 由于wml.xsl，wml,js，wml.css是各浏览器通用的，因此照此思路，可以基于ie做一个同样的wmlbrowser插件。 相关参考： http://www.nabble.com/WML-support-for-httpunit-td9558351.html Tags: FireFox, html, Opera, wml, xsl]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/09/07/108.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于wml的文本框缓存问题</title>
		<link>http://618119.com/archives/2008/06/23/95.html</link>
		<comments>http://618119.com/archives/2008/06/23/95.html#comments</comments>
		<pubDate>Mon, 23 Jun 2008 14:45:57 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[wml]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/06/23/95.html</guid>
		<description><![CDATA[普通情况下： &#60;% String msg = request.getParameter(&#8220;msg&#8221;); String emo= request.getParameter(&#8220;emo&#8221;); msg=msg+emo; %&#62; 文本框写成: &#60;input name=&#8221;msg&#8221; value=&#8221;&#60;%=msg%&#62;&#8221; type=&#8221;text&#8221; emptyok=&#8221;true&#8221;/&#62;&#60;br/&#62; 表单定义成 &#60;go href=&#8221;/test.jsp&#8221; method=&#8221;post&#8221;&#62; &#60;postfield name=&#8221;msg&#8221; value=&#8221;$msg&#8221;/&#62; &#60;postfield name=&#8221;emo&#8221; value=&#8221;test&#8221;/&#62; &#60;/go&#62;添加表情&#60;/anchor&#62; 表单是提交给当前页面的。 测试步骤如下： 在消息框输入内容“汉字”，提交表单。 预期结果为：文本框显示为“汉字test”，但是实际情况却是依然只显示“汉字”. 经过多次测试验证，发现这是手机浏览器或Opera等的表单缓存问题。 解决办法为： 将文本框的name定义成随机的。表单中关联到随机的文本框变量名， 修改后的代码如下： &#60;% String msgName=&#8221;m&#8221;+rd.nextInt(65536*6);//随机数产生input名字 String msg = request.getParameter(&#8220;msg&#8221;); String emo= request.getParameter(&#8220;emo&#8221;); msg=msg+emo; %&#62; 文本框写成: &#60;input name=&#8221;&#60;%=msgName %&#62;&#8221; value=&#8221;&#60;%=msg%&#62;&#8221; type=&#8221;text&#8221; emptyok=&#8221;true&#8221;/&#62;&#60;br/&#62; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/06/23/95.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript实现身份证号码的验证</title>
		<link>http://618119.com/archives/2008/06/04/94.html</link>
		<comments>http://618119.com/archives/2008/06/04/94.html#comments</comments>
		<pubDate>Wed, 04 Jun 2008 15:48:50 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/06/04/94.html</guid>
		<description><![CDATA[整理了一份javascript对身份证进行验证的程序。 源文件在： http://618119.com/docs/gis/shenfenzheng.html javascript 代码为： function getName(code){ var name=xzqh[code]; if(name==null){ return name; } //如果不是00结尾的，则补上市名称，659000例外 429000,469000 if(code%100 != 0 &#38;&#38; (code-code%100)!=659000 &#38;&#38; (code-code%100)!=429000 &#38;&#38; (code-code%100)!=469000){ var cityName=xzqh[(code-code%100)]; if(cityName.length&#62;1){//过滤掉只有一个字的“县” name=cityName+name; } } //如果不是0000结尾的，再补上省名称 if(code%10000 != 0){ name=xzqh[(code-code%10000)]+name; } return name; } function genData(){ var str=""; for(code in xzqh){ //整理成竖线分隔的每行一条记录 str+=  ""+code  +"&#124;" +getName(code) +"\n"; } document.getElementById("soapres").value=str; } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/06/04/94.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

