﻿<?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>IT博客-艺术人生,人生的艺术!</title><link>http://www.cnitblog.com/QiuLe/</link><description>艺术人生,人生的艺术,事业,亲情,爱情,友情!以上完美的结合是时间最外大的艺术</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 05:59:01 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 05:59:01 GMT</pubDate><ttl>60</ttl><item><title>Dwr 的配置 和传值</title><link>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39714.html</link><dc:creator>秋伟光</dc:creator><author>秋伟光</author><pubDate>Wed, 13 Feb 2008 08:13:00 GMT</pubDate><guid>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39714.html</guid><wfw:comment>http://www.cnitblog.com/QiuLe/comments/39714.html</wfw:comment><comments>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39714.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/QiuLe/comments/commentRss/39714.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/QiuLe/services/trackbacks/39714.html</trackback:ping><description><![CDATA[<div align=left><font face=verdana><font style="FONT-SIZE: 14px">一、</font></font> <a href="http://www.blogjava.net/zkjbeyond/archive/2006/03/23/37030.html" target=_blank><font style="FONT-SIZE: 14px"><font color=#3d7db3><u><font face='\"verdana\"'>dwr配置篇之web.xml</font> </u></font></font></a></div>
<font style="FONT-SIZE: 14px"><font face='\"verdana\"'>&nbsp;&nbsp; 1 、最小配置 </font></font>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">&lt;servlet&gt; <br>&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; <br>&lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt; <br>&lt;/servlet&gt; <br>&lt;servlet-mapping&gt; <br>&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; <br>&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt; <br>&lt;/servlet-mapping&gt;</font></font> <br><font face=verdana><font style="FONT-SIZE: 14px">2、当我们想看DWR自动生成的测试页（Using debug/test mode）时，可在servlet配置中加上</font></font> </div>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">&lt;init-param&gt; <br>&lt;param-name&gt;debug&lt;/param-name&gt; <br>&lt;param-value&gt;true&lt;/param-value&gt; <br>&lt;/init-param&gt;</font></font> </div>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">这个参数DWR默认是false。如果选择true，我们可以通过</font></font> <a href="http://localhost/app/dwr" target=_blank><font style="FONT-SIZE: 14px"><font color=#3d7db3><u><font face='\"verdana\"'>http://localhost:port/app/dwr看到你部署的每个DWR class。并且可以测试java代码的每个方法是否运行正常。为了安全考虑，在正式环境下你一定把这个参数设为false。</font> </u></font></font></a></div>
<font face=verdana><font style="FONT-SIZE: 14px">3、多个dwr.xml文件的配置 </font></font><font face=verdana><font style="FONT-SIZE: 14px">可能有几种情况，我们一一列举。一个servlet，多个dwr.xml配置文件；多个servlet，每个servlet对应一个或多个dwr.xml配置文件。</font></font> <font face=verdana><font style="FONT-SIZE: 14px">3.1、一个servlet，多个dwr.xml配置文件</font></font>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">&lt;servlet&gt;<br>&nbsp;&nbsp; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br>&nbsp;&nbsp; &lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt;<br>&nbsp;&nbsp; &lt;init-param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;config-1&lt;/param-name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;WEB-INF/dwr1.xml&lt;/param-value&gt;<br>&nbsp;&nbsp; &lt;/init-param&gt;<br>&nbsp;&nbsp; &lt;init-param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;config-2&lt;/param-name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;WEB-INF/dwr2.xml&lt;/param-value&gt;<br>&nbsp;&nbsp; &lt;/init-param&gt;<br>&lt;/servlet&gt;</font></font> </div>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">在这种配置下，param-name的值必须以config开头。param-name可以有&gt;=0个。如果没有param-name，那么将会读取 WEB-INF/dwr.xml。如果有大于零个param-name，那么WEB-INF/dwr.xml文件将不会被读取。</font></font> </div>
<font style="FONT-SIZE: 14px"><font face='\"verdana\"'>3.2 、多个 servlet ，每个 servlet 对应一个或多个 dwr.xml </font></font>
<div align=left><font face=verdana><font style="FONT-SIZE: 14px">&lt;servlet&gt; <br>&nbsp;&nbsp; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; <br>&nbsp;&nbsp; &lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt; <br>&lt;/servlet&gt; <br>&lt;servlet&gt; <br>&nbsp;&nbsp; &lt;servlet-name&gt;dwr-invoker1&lt;/servlet-name&gt; <br>&nbsp;&nbsp; &lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt; <br>&nbsp;&nbsp; &lt;init-param&gt; <br>&nbsp;&nbsp; &lt;param-name&gt;config-admin&lt;/param-name&gt; <br>&nbsp;&nbsp; &lt;param-value&gt;WEB-INF/dwr1.xml&lt;/param-value&gt; <br>&nbsp;&nbsp; &lt;/init-param&gt; <br>&nbsp;&nbsp; &lt;init-param&gt; <br>&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt; <br>&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt; <br>&nbsp;&nbsp; &lt;/init-param&gt; <br>&lt;/servlet&gt; <br>&lt;servlet-mapping&gt; <br>&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; <br>&nbsp;&nbsp; &lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt; <br>&lt;/servlet-mapping&gt; <br>&lt;servlet-mapping&gt; <br>&nbsp;&nbsp; &lt;servlet-name&gt;dwr-invoker1&lt;/servlet-name&gt; <br>&nbsp;&nbsp; &lt;url-pattern&gt;/dwr1/*&lt;/url-pattern&gt; <br>&lt;/servlet-mapping&gt;</font></font> </div>
<div align=left><font style="FONT-SIZE: 14px"><font face='\"verdana\"'>在这种情况下，我们可以根据 J2EE security 来控制权限，针对不同 url, 加不同的角色。 </font></font></div>
<div><span class=oblog_text>----------------------------------------------------------------------------------------------------------------</span></div>
<p><span class=oblog_text>1、调用没有返回值和参数的JAVA方法<br>1.1、dwr.xml的配置<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod1"/&gt;<br>&lt;/create&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>&lt;allow&gt;标签中包括可以暴露给javascript访问的东西。<br>&lt; create&gt;标签中指定javascript中可以访问的java类，并定义DWR应当如何获得要进行远程的类的实例。creator= "new"属性指定java类实例的生成方式，new意味着DWR应当调用类的默认构造函数来获得实例，其他的还有spring方式，通过与IOC容器 Spring进行集成来获得实例等等。javascript=" testClass "属性指定javascript代码访问对象时使用的名称。<br>&lt;param&gt;标签指定要公开给javascript的java类名。<br>&lt;include&gt;标签指定要公开给javascript的方法。不指定的话就公开所有方法。<br>&lt;exclude&gt;标签指定要防止被访问的方法。<br>1.2、javascript中调用<br>首先，引入javascript脚本<br>&lt;script src='dwr/interface/ testClass.js'&gt;&lt;/script&gt;<br>&lt;script src="/dwr/engine.js"&gt;&lt;/script&gt;<br>&lt;script src="/dwr/util.js"&gt;&lt;/script&gt;<br>其中TestClass.js是dwr根据配置文件自动生成的，engine.js和util.js是dwr自带的脚本文件。<br>其次，编写调用java方法的javascript函数<br>Function callTestMethod1(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod1();<br>}<br>2、调用有简单返回值的java方法<br>2.1、dwr.xml的配置<br>配置同1.1<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod2"/&gt;<br>&lt;/create&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>2.2、javascript中调用<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数和接收返回值的回调函数<br>Function callTestMethod2(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod2(callBackFortestMethod2);<br>}<br>Function callBackFortestMethod2(data){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //其中date接收方法的返回值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //可以在这里对返回值进行处理和显示等等<br>alert("the return value is " + data);<br>}<br>其中callBackFortestMethod2是接收返回值的回调函数<br>3、调用有简单参数的java方法<br>3.1、dwr.xml的配置<br>配置同1.1<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod3"/&gt;<br>&lt;/create&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>3.2、javascript中调用<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数<br>Function callTestMethod3(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义要传到java方法中的参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = &#8220;test String&#8221;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod3(data);<br>}<br>4、调用返回JavaBean的java方法<br>4.1、dwr.xml的配置<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod4"/&gt;<br>&lt;/create&gt;<br>&lt;convert converter="bean" match=""com.dwr.TestBean"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="include" value="username,password" /&gt;<br>&lt;/convert&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>&lt; creator&gt;标签负责公开用于Web远程的类和类的方法，&lt;convertor&gt;标签则负责这些方法的参数和返回类型。 convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。DWR自动地在Java和JavaScript表示之间调整简单数据类型。这些类型包括 Java原生类型和它们各自的封装类表示，还有String、Date、数组和集合类型。DWR也能把JavaBean转换成JavaScript 表示，但是出于安全性的原因，要求显式的配置，&lt;convertor&gt;标签就是完成此功能的。converter="bean"属性指定转换 的方式采用JavaBean命名规范，match=""com.dwr.TestBean"属性指定要转换的javabean名称，&lt; param&gt;标签指定要转换的JavaBean属性。<br>4.2、javascript中调用<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数和接收返回值的回调函数<br>Function callTestMethod4(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod4(callBackFortestMethod4);<br>}<br>Function callBackFortestMethod4(data){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //其中date接收方法的返回值<br>//对于JavaBean返回值，有两种方式处理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //不知道属性名称时，使用如下方法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var property in data){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("property:"+property);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(property+":"+data[property]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>//知道属性名称时，使用如下方法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.username);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.password);<br>}<br>其中callBackFortestMethod4是接收返回值的回调函数<br>5、调用有JavaBean参数的java方法<br>5.1、dwr.xml的配置<br>配置同4.1<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod5"/&gt;<br>&lt;/create&gt;<br>&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="include" value="username,password" /&gt;<br>&lt;/convert&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>5.2、javascript中调用<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数<br>Function callTestMethod5(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义要传到java方法中的参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造参数，date实际上是一个object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = { username:"user", password:"password" }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod5(data);<br>}<br>6、调用返回List、Set或者Map的java方法<br>6.1、dwr.xml的配置<br>配置同4.1<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod6"/&gt;<br>&lt;/create&gt;<br>&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br>&lt;param name="include" value="username,password" /&gt;<br>&lt;/convert&gt;<br>&lt;/allow&gt;<br>&lt;/dwr&gt;<br>注意：如果List、Set或者Map中的元素均为简单类型（包括其封装类）或String、Date、数组和集合类型，则不需要&lt;convert&gt;标签。<br>6.2、javascript中调用(以返回List为例，List的元素为TestBean)<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数和接收返回值的回调函数<br>Function callTestMethod6(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod6(callBackFortestMethod6);<br>}<br>Function callBackFortestMethod6(data){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //其中date接收方法的返回值<br>//对于JavaBean返回值，有两种方式处理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //不知道属性名称时，使用如下方法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;data.length;i++){<br>for(var property in data){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("property:"+property);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(property+":"+data[property]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br>//知道属性名称时，使用如下方法<br>for(var i=0;i&lt;data.length;i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.username);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.password);<br>}<br>}<br>7、调用有List、Set或者Map参数的java方法<br>7.1、dwr.xml的配置<br>&lt;dwr&gt;<br>&lt;allow&gt;<br>&lt;create creator="new" javascript="testClass" &gt;<br>&lt;param name="class" value="/com.dwr.TestClass" /&gt;<br>&lt;include method="testMethod7"/&gt;<br>&lt;/create&gt;<br>&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br>&lt;param name="include" value="username,password" /&gt;<br>&lt;/convert&gt;<br>&lt;/allow&gt;<br>&lt;signatures&gt;<br>&lt;![CDATA[ <br>import java.util.List; <br>import com.dwr.TestClass; <br>import com.dwr.TestBean; <br>TestClass.testMethod7(List&lt;TestBean&gt;); <br>]]&gt;<br>&lt;/signatures&gt;<br>&lt;/dwr&gt;<br>&lt;signatures&gt;标签是用来声明java方法中List、Set或者Map参数所包含的确切类，以便java代码作出判断。<br>7.2、javascript中调用(以返回List为例，List的元素为TestBean)<br>首先，引入javascript脚本<br>其次，编写调用java方法的javascript函数<br>Function callTestMethod7(){<br>//定义要传到java方法中的参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造参数，date实际上是一个object数组，即数组的每个元素均为object<br>data = [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:"user1", <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password:"password2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:"user2",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password:" password2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod7(data);<br>}<br>注意：<br>1、对于第6种情况，如果java方法的返回值为Map，则在接收该返回值的javascript回调函数中如下处理：<br>function callBackFortestMethod(data){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //其中date接收方法的返回值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var property in data){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var bean = data[property];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(bean.username);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(bean.password);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br>2、对于第7种情况，如果java的方法的参数为Map（假设其key为String，value为TestBean），则在调用该方法的javascript函数中用如下方法构造要传递的参数：<br>function callTestMethod (){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义要传到java方法中的参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造参数，date实际上是一个object，其属性名为Map的key，属性值为Map的value<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "key1":{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:"user1", <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password:"password2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "key2":{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:"user2",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password:" password2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testClass.testMethod(data);<br>}<br>并且在dwr.xml中增加如下的配置段<br>&lt;signatures&gt;<br>&lt;![CDATA[ <br>import java.util.List; <br>import com.dwr.TestClass; <br>import com.dwr.TestBean; <br>TestClass.testMethod7(Map&lt;String,TestBean&gt;); <br>]]&gt;<br>&lt;/signatures&gt;<br>3、 由以上可以发现，对于java方法的返回值为List(Set)的情况，DWR将其转化为Object数组，传递个javascript；对于java方 法的返回值为Map的情况，DWR将其转化为一个Object，其中Object的属性为原Map的key值，属性值为原Map相应的value值。<br>4、如果java方法的参数为List(Set)和Map的情况，javascript中也要根据3种所说，构造相应的javascript数据来传递到java中。</span></p>
<img src ="http://www.cnitblog.com/QiuLe/aggbug/39714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/QiuLe/" target="_blank">秋伟光</a> 2008-02-13 16:13 <a href="http://www.cnitblog.com/QiuLe/archive/2008/02/13/39714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的正则表达式 </title><link>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39710.html</link><dc:creator>秋伟光</dc:creator><author>秋伟光</author><pubDate>Wed, 13 Feb 2008 04:19:00 GMT</pubDate><guid>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39710.html</guid><wfw:comment>http://www.cnitblog.com/QiuLe/comments/39710.html</wfw:comment><comments>http://www.cnitblog.com/QiuLe/archive/2008/02/13/39710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/QiuLe/comments/commentRss/39710.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/QiuLe/services/trackbacks/39710.html</trackback:ping><description><![CDATA[正则表达式用于字符串处理、表单验证等场合，实用高效。现将一些常用的表达式收集于此，以备不时之需<br><br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">匹配中文字符的正则表达式：&nbsp;[\u4e00</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">\u9fa5]<br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">评注：匹配中文还真是个头疼的事，有了这个表达式就好办了<br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">匹配双字节字符(包括汉字在内)：[</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">\x00</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">\xff]<br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）<br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000">匹配空白行的正则表达式：\n\s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\r<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">评注：可以用来删除空白行<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">匹配HTML标记的正则表达式：</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">(\S</span><span style="COLOR: #000000">*?</span><span style="COLOR: #000000">)[</span><span style="COLOR: #000000">^&gt;</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">*?&lt;/</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&gt;|&lt;</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">*?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">匹配首尾空白字符的正则表达式：</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">\s</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">\s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">匹配Email地址的正则表达式：\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">-+</span><span style="COLOR: #000000">.]\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">@\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">.]\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">.]\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">评注：表单验证时很实用<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">匹配网址URL的正则表达式：[a</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">zA</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">[^\s]*</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">评注：网上流传的版本功能很有限，上面这个基本可以满足需求<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">匹配帐号是否合法(字母开头，允许5</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">16字节，允许字母数字下划线)：</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[a</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">zA</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Z][a</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">zA</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Z0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9_]{</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">}$<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">评注：表单验证时很实用<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">匹配国内电话号码：\d{</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">\d{</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">\d{</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">\d{</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">评注：匹配形式如&nbsp;</span><span style="COLOR: #000000">0511</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">4405222</span><span style="COLOR: #000000">&nbsp;或&nbsp;</span><span style="COLOR: #000000">021</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">87888822</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">匹配腾讯QQ号：[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]{</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">,}<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">评注：腾讯QQ号从10000开始<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">匹配中国邮政编码：[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d{</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">}(</span><span style="COLOR: #000000">?!</span><span style="COLOR: #000000">\d)<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">评注：中国邮政编码为6位数字<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">匹配身份证：\d{</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">\d{</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">评注：中国的身份证为15位或18位<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">匹配ip地址：\d</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">评注：提取ip地址时有用<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">匹配特定数字：<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$　&nbsp;　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配正整数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^-</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$&nbsp;　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配负整数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^-?</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$　　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配整数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">$　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配非负整数（正整数&nbsp;+&nbsp;0）</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^-</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">$　　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配非正整数（负整数&nbsp;+&nbsp;0）</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">$　　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配正浮点数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^-</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)$　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配负浮点数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^-?</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">+|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)$　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配浮点数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">+|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">$　　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配非负浮点数（正浮点数&nbsp;+&nbsp;0）</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\.\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]\d</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">))</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">+|</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配非正浮点数（负浮点数&nbsp;+&nbsp;0）</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">评注：处理大量数据时有用，具体应用时注意修正<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">匹配特定字符串：<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[A</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Za</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配由26个英文字母组成的字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[A</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Z]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配由26个英文字母的大写组成的字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[a</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配由26个英文字母的小写组成的字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">[A</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Za</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配由数字和26个英文字母组成的字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">44</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">\w</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">匹配由数字、26个英文字母或者下划线组成的字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">45</span>&nbsp;<span style="COLOR: #008000"></span></div>
<img src ="http://www.cnitblog.com/QiuLe/aggbug/39710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/QiuLe/" target="_blank">秋伟光</a> 2008-02-13 12:19 <a href="http://www.cnitblog.com/QiuLe/archive/2008/02/13/39710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax的注册应用 [转帖]</title><link>http://www.cnitblog.com/QiuLe/archive/2008/02/13/ajaxregexample.html</link><dc:creator>秋伟光</dc:creator><author>秋伟光</author><pubDate>Wed, 13 Feb 2008 01:26:00 GMT</pubDate><guid>http://www.cnitblog.com/QiuLe/archive/2008/02/13/ajaxregexample.html</guid><wfw:comment>http://www.cnitblog.com/QiuLe/comments/39705.html</wfw:comment><comments>http://www.cnitblog.com/QiuLe/archive/2008/02/13/ajaxregexample.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/QiuLe/comments/commentRss/39705.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/QiuLe/services/trackbacks/39705.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ajax的注册应用最近发现Ajax在用户注册表单和用户登录表单方面应用，最能体现Ajax的交互特点，因此又是写了一个习作！演示效果 新开窗口地址： http://www.klstudio.com/demo/ajax/reg.htm &nbsp;&nbsp;1&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&...&nbsp;&nbsp;<a href='http://www.cnitblog.com/QiuLe/archive/2008/02/13/ajaxregexample.html'>阅读全文</a><img src ="http://www.cnitblog.com/QiuLe/aggbug/39705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/QiuLe/" target="_blank">秋伟光</a> 2008-02-13 09:26 <a href="http://www.cnitblog.com/QiuLe/archive/2008/02/13/ajaxregexample.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>