﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-努力创造未来！-随笔分类-javascirpt</title><link>http://www.blogjava.net/pdw2009/category/7807.html</link><description>J2EE相关应用技术日志</description><language>zh-cn</language><lastBuildDate>Thu, 11 Oct 2007 16:12:09 GMT</lastBuildDate><pubDate>Thu, 11 Oct 2007 16:12:09 GMT</pubDate><ttl>60</ttl><item><title>prototypejs最好的学习资料</title><link>http://www.blogjava.net/pdw2009/archive/2007/09/26/148468.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Wed, 26 Sep 2007 15:46:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/09/26/148468.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/148468.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/09/26/148468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/148468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/148468.html</trackback:ping><description><![CDATA[https://compdoc2cn.dev.java.net/prototype/html/prototype.js.cn.html<br />
<br />
&nbsp;这是中文版教程<br />
http://www.prototypejs.org/<br />
官方网站
<img src ="http://www.blogjava.net/pdw2009/aggbug/148468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-09-26 23:46 <a href="http://www.blogjava.net/pdw2009/archive/2007/09/26/148468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js正则表达式</title><link>http://www.blogjava.net/pdw2009/archive/2007/04/09/109402.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Mon, 09 Apr 2007 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/04/09/109402.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/109402.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/04/09/109402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/109402.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/109402.html</trackback:ping><description><![CDATA[<font style="FONT-FAMILY: Arial" face=黑体 size=4><strong>一、正则表达式是什么？为什么要用正则表达式？<br></strong><span style="FONT-SIZE: 12pt; FONT-FAMILY: Arial">1）数据格式的有效性验证：你可是已经 见识过了。<br>2）文本替换：文本编辑器你应该见识多了，哪个里面没有搜索和替换功能呢？如果你用过这些，那末，你已经是正则表达式的受益者了。<br>3）提取字符串：没有他，据说搜索引擎都不工作。呵呵。<br></span><font size=3><strong>正则表达式中的特殊字符</strong> </font><br><font face=宋体>/.../：代表一个模式的开始和结束。<br>^：用来匹配输入字符串的开始。（定位符）<br>$：用来匹配输入字符串的结束。（定位符）<br>:是个转义字符，d就代表匹配一个数字。（不会不知道转义吧？）<br>{n}：代表前边子模式匹配的次数。（限定符）<br>
<table cellSpacing=1 cellPadding=3 width="100%" bgColor=#ffffff>
    <tbody>
        <tr align=middle bgColor=#ccccff>
            <td>字符 </td>
            <td>含意 </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\</td>
            <td>
            <p>做为转意，即通常在"\"后面的字符不按原来意义解释，如/b/匹配字符"b"，当b前面加了反斜杆后/\b/，转意为匹配一个单词的边界。 <br>-或- <br>对正则表达式功能字符的还原，如"*"匹配它前面元字符0次或多次，/a*/将匹配a,aa,aaa，加了"\"后，/a\*/将只匹配"a*"。 </p>
            </td>
        </tr>
        <tr>
            <td>^ </td>
            <td>匹配一个输入或一行的开头，/^a/匹配"an A"，而不匹配"An a" </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>$ </td>
            <td>匹配一个输入或一行的结尾，/a$/匹配"An a"，而不匹配"an A" </td>
        </tr>
        <tr>
            <td>* </td>
            <td>匹配前面元字符0次或多次，/ba*/将匹配b,ba,baa,baaa </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>+ </td>
            <td>匹配前面元字符1次或多次，/ba*/将匹配ba,baa,baaa </td>
        </tr>
        <tr>
            <td>? </td>
            <td>匹配前面元字符0次或1次，/ba*/将匹配b,ba </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>(x) </td>
            <td>匹配x保存x在名为$1...$9的变量中 </td>
        </tr>
        <tr>
            <td>x|y </td>
            <td>匹配x或y </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>{n} </td>
            <td>精确匹配n次 </td>
        </tr>
        <tr>
            <td>{n,} </td>
            <td>匹配n次以上 </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>{n,m} </td>
            <td>匹配n-m次 </td>
        </tr>
        <tr>
            <td>[xyz] </td>
            <td>字符集(character set)，匹配这个集合中的任一一个字符(或元字符) </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>[^xyz] </td>
            <td>不匹配这个集合中的任何一个字符 </td>
        </tr>
        <tr>
            <td>[\b] </td>
            <td>匹配一个退格符</td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\b </td>
            <td>匹配一个单词的边界 </td>
        </tr>
        <tr>
            <td>\B </td>
            <td>匹配一个单词的非边界</td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\cX </td>
            <td>这儿，X是一个控制符，/\cM/匹配Ctrl-M </td>
        </tr>
        <tr>
            <td>\d </td>
            <td>匹配一个字数字符，/\d/ = /[0-9]/ </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\D </td>
            <td>匹配一个非字数字符，/\D/ = /[^0-9]/ </td>
        </tr>
        <tr>
            <td>\n </td>
            <td>匹配一个换行符 </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\r </td>
            <td>匹配一个回车符 </td>
        </tr>
        <tr>
            <td>\s </td>
            <td>匹配一个空白字符，包括\n,\r,\f,\t,\v等 </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\S </td>
            <td>匹配一个非空白字符，等于/[^\n\f\r\t\v]/ </td>
        </tr>
        <tr>
            <td>\t </td>
            <td>匹配一个制表符 </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\v </td>
            <td>匹配一个重直制表符 </td>
        </tr>
        <tr>
            <td>\w </td>
            <td>匹配一个可以组成单词的字符(alphanumeric，这是我的意译，含数字)，包括下划线，如[\w]匹配"$5.98"中的5，等于[a-zA-Z0-9] </td>
        </tr>
        <tr bgColor=#dfdfdf>
            <td>\W </td>
            <td>匹配一个不可以组成单词的字符，如[\W]匹配"$5.98"中的$，等于[^a-zA-Z0-9]。</td>
        </tr>
    </tbody>
</table>
<br></font><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: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;check_number(obj){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">/^</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">.test(obj.value)){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('请输入数字</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
结合上面的特殊字符说明，我们就知道这是一个检验obj的值是否是数字。相关例子可以参考<a href="http://www.javaeye.com/topic/30728">http://www.javaeye.com/topic/30728</a><br><br>
<li>创建： <br>一个文本格式或正则表达式构造函数 <br>文本格式： /pattern/flags <br>正则表达式构造函数： new RegExp("pattern"[,"flags"]);
<li>参数说明： <br>pattern -- 一个正则表达式文本 <br>flags -- 如果存在，将是以下值： <br>g: 全局匹配 <br>i: 忽略大小写 <br>gi: 以上组合<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: #000000">&lt;</span><span style="COLOR: #000000">script&nbsp;language</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;reg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RegExp(</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">"</span><span style="COLOR: #000000">g</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建正则RegExp对象</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;stringObj</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">;<br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;newstr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">stringObj.replace(reg,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">中国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;<br>alert(newstr);<br></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span></div>
别一种规换<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: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script&nbsp;type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;reg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RegExp(</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">"</span><span style="COLOR: #000000">g</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;str</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">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;newstr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">str.replace(reg,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">中国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;ostr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">str.replace(</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(人)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">g,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;font&nbsp;color=red&gt;$1&lt;/font&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(ostr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(newstr);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span></div>
<br></font></li>
<img src ="http://www.blogjava.net/pdw2009/aggbug/109402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-04-09 15:01 <a href="http://www.blogjava.net/pdw2009/archive/2007/04/09/109402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript和浏览器对象模型</title><link>http://www.blogjava.net/pdw2009/archive/2006/12/04/85459.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Mon, 04 Dec 2006 14:43:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/12/04/85459.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/85459.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/12/04/85459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/85459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/85459.html</trackback:ping><description><![CDATA[ <br /><br /><br /><img height="321" alt="graphics/10fig03.gif" src="mk:@MSITStore:G:\old\学习资料\网页设计资料\javascripte\Prentice%20Hall%20-%20JavaScript%20by%20Example%20-%202003.chm::/FILES/10fig03.gif" width="500" border="0" /><br /><img src ="http://www.blogjava.net/pdw2009/aggbug/85459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-12-04 22:43 <a href="http://www.blogjava.net/pdw2009/archive/2006/12/04/85459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript学习笔记</title><link>http://www.blogjava.net/pdw2009/archive/2006/11/07/79725.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Tue, 07 Nov 2006 15:09:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/11/07/79725.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/79725.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/11/07/79725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/79725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/79725.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: javascript有三种基础类型,分别是：numeric，string，boolean其中numeric又有实数型和整型。变量名的定义和通常写JAVA程序一样。在JS中定义变量必需使用var &lt;变量名&gt;的方式来定义，如：var  v_abc="abc";v_abc=1215;这样的代码在javascript是正确的因为javascript 并没有使用强类型，而是使用了一个宽松的类型定...&nbsp;&nbsp;<a href='http://www.blogjava.net/pdw2009/archive/2006/11/07/79725.html'>阅读全文</a><img src ="http://www.blogjava.net/pdw2009/aggbug/79725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-11-07 23:09 <a href="http://www.blogjava.net/pdw2009/archive/2006/11/07/79725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js常用校验</title><link>http://www.blogjava.net/pdw2009/archive/2006/10/27/77653.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 27 Oct 2006 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/10/27/77653.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/77653.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/10/27/77653.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/77653.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/77653.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: /** * 取得字符串的字节长度 */ 		代码																		function						strlen						(						str						)												{												var						i						;												var						len						;		...&nbsp;&nbsp;<a href='http://www.blogjava.net/pdw2009/archive/2006/10/27/77653.html'>阅读全文</a><img src ="http://www.blogjava.net/pdw2009/aggbug/77653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-10-27 15:00 <a href="http://www.blogjava.net/pdw2009/archive/2006/10/27/77653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js正则入门</title><link>http://www.blogjava.net/pdw2009/archive/2006/10/27/77650.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 27 Oct 2006 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/10/27/77650.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/77650.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/10/27/77650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/77650.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/77650.html</trackback:ping><description><![CDATA[
		<p>
				<span style="FONT-SIZE: 18pt">JS的正则表达式</span>
		</p>
		<p>//校验是否全由数字组成 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isDigit</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[0-9]{1,20}$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>//校验登录名：只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isRegisterUserName</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>//校验用户姓名：只能输入1-30个以字母开头的字串 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isTrueName</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[a-zA-Z]{1,30}$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
						<span class="punct">}}</span>
						<p>
						</p>
						<p>
								<span class="punct">/</span>
								<span class="regex">
								</span>
								<span class="punct">/校验密码：只能输入</span>
								<span class="number">6</span>
								<span class="punct">-</span>
								<span class="number">20个字母、数字、下划线</span>
								<br />
								<span class="punct">[</span>
								<span class="ident">code</span>
								<span class="punct">]</span>
								<br />
								<span class="ident">function</span>
								<span class="ident">isPasswd</span>
								<span class="punct">(</span>
								<span class="ident">s</span>
								<span class="punct">)</span>
								<br />
								<span class="punct">{</span>
								<br />
								<span class="ident">var</span>
								<span class="ident">patrn</span>
								<span class="punct">=/</span>
								<span class="regex">^(<span class="escape">\w</span>){6,20}$</span>
								<span class="punct">/;</span>
								<br />
								<span class="keyword">if</span>
								<span class="punct">(!</span>
								<span class="ident">patrn</span>
								<span class="punct">.</span>
								<span class="ident">exec</span>
								<span class="punct">(</span>
								<span class="ident">s</span>
								<span class="punct">))</span>
								<span class="keyword">return</span>
								<span class="constant">false</span>
								<br />
								<span class="keyword">return</span>
								<span class="constant">true</span>
								<br />
								<span class="punct">}</span>
								<br />
						</p>
				</pre>
		</div>
		<p>
		</p>
		<p>//校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-” <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isTel</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="punct">/</span>
						<span class="regex">
						</span>
						<span class="punct">/</span>
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[+]{0,1}(<span class="escape">\d</span>){1,3}[ ]?([-]?(<span class="escape">\d</span>){1,12})+$</span>
						<span class="punct">/;</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[+]{0,1}(<span class="escape">\d</span>){1,3}[ ]?([-]?((<span class="escape">\d</span>)|[ ]){1,12})+$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>//校验手机号码：必须以数字开头，除数字外，可含有“-” <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isMobil</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[+]{0,1}(<span class="escape">\d</span>){1,3}[ ]?([-]?((<span class="escape">\d</span>)|[ ]){1,12})+$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>//校验邮政编码 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isPostalCode</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="punct">/</span>
						<span class="regex">
						</span>
						<span class="punct">/</span>
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[a-zA-Z0-9]{3,12}$</span>
						<span class="punct">/;</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[a-zA-Z0-9 ]{3,12}$</span>
						<span class="punct">/;</span>
						<br />
						<span class="keyword">if</span>
						<span class="punct">(!</span>
						<span class="ident">patrn</span>
						<span class="punct">.</span>
						<span class="ident">exec</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">))</span>
						<span class="keyword">return</span>
						<span class="constant">false</span>
						<br />
						<span class="keyword">return</span>
						<span class="constant">true</span>
						<br />
						<span class="punct">}</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>//校验搜索关键字 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="ident">function</span>
						<span class="ident">isSearch</span>
						<span class="punct">(</span>
						<span class="ident">s</span>
						<span class="punct">)</span>
						<br />
						<span class="punct">{</span>
						<br />
						<span class="ident">var</span>
						<span class="ident">patrn</span>
						<span class="punct">=/</span>
						<span class="regex">^[^`~!@<span class="expr">#$</span>%^&amp;*()+=|<span class="escape">\\\]</span>[<span class="escape">\]\{\}</span>:;'<span class="escape">\,</span>.&lt;&gt;</span>
						<span class="punct">/</span>
						<span class="char">?]</span>
						<span class="punct">{</span>
						<span class="number">1</span>
						<span class="punct">}[^`~!</span>
						<span class="attribute">@</span>
						<span class="global">$%^</span>
						<span class="punct">&amp;()+=|\\\]</span>
						<br />
						<span class="punct">[\]\{\}:;'</span>
						<span class="string">\,.&lt;&gt;?]{0,19}$/;
<br />if (!patrn.exec(s)) return false
<br />return true
<br />}<p></p><p>function isIP(s) //by zergling
<br />{
var patrn=/^[0-9.]{1,20}$/;
<br />if (!patrn.exec(s)) return false
<br />return true
<br />}
<span class="normal"><br /></span></p></span>
				</pre>
		</div>
		<p>
		</p>
		<p>
				<span style="FONT-SIZE: 18pt">正则表达式</span>
				<br />
		</p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />
						<span class="punct">"</span>
						<span class="string">^<span class="escape">\\</span>d+$</span>
						<span class="punct">"　　//</span>
						<span class="regex">非负整数（正整数 + 0）
<br />"^[0-9]*[1-9][0-9]*$"　　</span>
						<span class="punct">//正整数</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^((-<span class="escape">\\</span>d+)|(0+))$</span>
						<span class="punct">"　　//</span>
						<span class="regex">非正整数（负整数 + 0） 
<br />"^-[0-9]*[1-9][0-9]*$"　　</span>
						<span class="punct">//负整数</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^-?<span class="escape">\\</span>d+$</span>
						<span class="punct">"　　　　//</span>
						<span class="regex">整数 
<br />"^<span class="escape">\\</span>d+(<span class="escape">\\</span>.<span class="escape">\\</span>d+)?$"　　</span>
						<span class="punct">//非负浮点数（正浮点数</span>
						<span class="punct">+</span>
						<span class="number">0）</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^(([0-9]+<span class="escape">\\</span>.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*<span class="escape">\\</span>.[0-9]+)|([0-9]*[1-9][0-9]*))$</span>
						<span class="punct">"　</span>
						<br />
						<span class="punct">/</span>
						<span class="regex">
						</span>
						<span class="punct">/正浮点数</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^((-<span class="escape">\\</span>d+(<span class="escape">\\</span>.<span class="escape">\\</span>d+)?)|(0+(<span class="escape">\\</span>.0+)?))$</span>
						<span class="punct">"　　//</span>
						<span class="regex">非正浮点数（负浮点数 + 0） 
<br />"^(-(([0-9]+<span class="escape">\\</span>.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*<span class="escape">\\</span>.[0-9]+)|([0-9]*[1-9][0-9]*)))$"　
<br /></span>
						<span class="punct">//负浮点数</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^(-?<span class="escape">\\</span>d+)(<span class="escape">\\</span>.<span class="escape">\\</span>d+)?$</span>
						<span class="punct">"　　//</span>
						<span class="regex">浮点数 
<br />"^[A-Za-z]+$"　　</span>
						<span class="punct">//由</span>
						<span class="number">26个英文字母组成的字符串</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^[A-Z]+$</span>
						<span class="punct">"　　//</span>
						<span class="regex">由26个英文字母的大写组成的字符串 
<br />"^[a-z]+$"　　</span>
						<span class="punct">//由</span>
						<span class="number">26个英文字母的小写组成的字符串</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^[A-Za-z0-9]+$</span>
						<span class="punct">"　　//</span>
						<span class="regex">由数字和26个英文字母组成的字符串 
<br />"^<span class="escape">\\</span>w+$"　　</span>
						<span class="punct">//由数字、</span>
						<span class="number">26个英文字母或者下划线组成的字符串</span>
						<br />
						<span class="punct">"</span>
						<span class="string">^[<span class="escape">\\</span>w-]+(<span class="escape">\\</span>.[<span class="escape">\\</span>w-]+)*@[<span class="escape">\\</span>w-]+(<span class="escape">\\</span>.[<span class="escape">\\</span>w-]+)+$</span>
						<span class="punct">"　　　　//</span>
						<span class="regex">email地址 
<br />"^[a-zA-z]+:</span>
						<span class="punct">//(\\</span>
						<span class="ident">w</span>
						<span class="punct">+(-\\</span>
						<span class="ident">w</span>
						<span class="punct">+)*)(\\.(\\</span>
						<span class="ident">w</span>
						<span class="punct">+(-\\</span>
						<span class="ident">w</span>
						<span class="punct">+)*))*(\\</span>
						<span class="char">?\\</span>
						<span class="constant">S</span>
						<span class="punct">*)</span>
						<span class="char">?$</span>
						<span class="punct">"</span>
						<span class="string">　　//url
<br /></span>
						<span class="punct">"^[</span>
						<span class="constant">A</span>
						<span class="punct">-</span>
						<span class="constant">Za</span>
						<span class="punct">-</span>
						<span class="ident">z0</span>
						<span class="punct">-</span>
						<span class="number">9_</span>
						<span class="punct">]*</span>
						<span class="global">$"</span>
						<br />
				</pre>
		</div>
		<p>
		</p>
		<p>
				<span style="FONT-SIZE: 18pt">正则表达式使用详解</span>
		</p>
		<p>简介 </p>
		<p>简单的说，正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下： <br />测试字符串的某个模式。例如，可以对一个输入字符串进行测试，看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 <br />替换文本。可以在文档中使用一个正则表达式来标识特定文字，然后可以全部将其删除，或者替换为别的文字。 <br />根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。 </p>
		<p>基本语法 </p>
		<p>在对正则表达式的功能和作用有了初步的了解之后，我们就来具体看一下正则表达式的语法格式。 <br />正则表达式的形式一般如下：　　</p>
		<p>/love/　　其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容，正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符，可以用来规定其前导字符（即位于元字符前面的字符）在目标对象中的出现模式。 <br />较为常用的元字符包括： “+”， “*”，以及 “?”。</p>
		<p>“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。</p>
		<p>“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。</p>
		<p>“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。</p>
		<p>下面，就让我们来看一下正则表达式元字符的具体应用。 </p>
		<p>/fo+/　　因为上述正则表达式中包含“+”元字符，表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。 </p>
		<p>/eg*/　　因为上述正则表达式中包含“*”元字符，表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。 </p>
		<p>/Wil?/　　因为上述正则表达式中包含“？”元字符，表示可以与目标对象中的 “Win”, 或者“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。 </p>
		<p>有时候不知道要匹配多少字符。为了能适应这种不确定性，正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。</p>
		<p>{n} n 是一个非负整数。匹配确定的 n 次。例如，'o{2}' 不能匹配 "Bob" 中的 'o'，但是能匹配 "food" 中的两个 o。</p>
		<p>{n,} n 是一个非负整数。至少匹配 n 次。例如，'o{2,}' 不能匹配 "Bob" 中的 'o'，但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。</p>
		<p>{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。例如，"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。</p>
		<p>除了元字符之外，用户还可以精确指定模式在匹配对象中出现的频率。例如，/jim {2,6}/ 上述正则表达式规定字符m可以在匹配对象中连续出现2-6次，因此，上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。 <br />在对如何使用正则表达式有了初步了解之后，我们来看一下其它几个重要的元字符的使用方式。 <br /></p>
		<div class="code_title">代码</div>
		<div class="code_div">
				<pre>
						<br />\<span class="ident">s：用于匹配单个空格符，包括tab键和换行符；</span><br />\<span class="constant">S：用于匹配除单个空格符之外的所有字符；</span><br />\<span class="ident">d：用于匹配从</span><span class="number">0到9的数字；</span><br />\<span class="ident">w：用于匹配字母，数字或下划线字符；</span><br />\<span class="constant">W：用于匹配所有与\</span><span class="ident">w不匹配的字符；</span><br /><span class="punct">.</span> ：用于匹配除换行符之外的所有字符。 
<br /></pre>
		</div>
		<br />（说明：我们可以把\s和\S以及\w和\W看作互为逆运算） <br />下面，我们就通过实例看一下如何在正则表达式中使用上述元字符。 <br />/\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。 <br />/\d000/　如果我们手中有一份复杂的财务报表，那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。 <br />除了我们以上所介绍的元字符之外，正则表达式中还具有另外一种较为独特的专用字符，即定位符。定位符用于规定匹配模式在目标对象中的出现位置。 较为常用的定位符包括： “^”, “$”, “\b” 以及 “\B”。 <br /><div class="code_title">代码</div><div class="code_div"><pre><br />“^”定位符规定匹配模式必须出现在目标字符串的开头
<br />“<span class="global">$”定位符规定匹配模式必须出现在目标对象的结尾</span><br />“\<span class="ident">b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一</span><br />“\<span class="constant">B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内，</span><br />      即匹配对象既不能作为目标字符串的开头，也不能作为目标字符串的结尾。
<br /></pre></div><br />同样，我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说： /^hell/　因为上述正则表达式中包含“^”定位符，所以可以与目标对象中以 “hell”, “hello”或“hellhound”开头的字符串相匹配。 /ar$/　因为上述正则表达式中包含“$”定位符，所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 /\bbom/　因为上述正则表达式模式以“\b”定位符开头，所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。/man\b/　因为上述正则表达式模式以“\b”定位符结尾，所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。 <br />为了能够方便用户更加灵活的设定匹配模式，正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如： <br /><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="punct">/</span><span class="regex">[A-Z]</span><span class="punct">/　　上述正则表达式将会与从</span><span class="constant">A到Z范围内任何一个大写字母相匹配。</span><br /><span class="punct">/</span><span class="regex">[a-z]</span><span class="punct">/　　上述正则表达式将会与从</span><span class="ident">a到z范围内任何一个小写字母相匹配。</span><br /><span class="punct">/[</span><span class="number">0</span><span class="punct">-</span><span class="number">9</span><span class="punct">]/</span> 　上述正则表达式将会与从<span class="number">0到9范围内任何一个数字相匹配。</span><br /><span class="punct">/([</span><span class="ident">a</span><span class="punct">-</span><span class="ident">z</span><span class="punct">][</span><span class="constant">A</span><span class="punct">-</span><span class="constant">Z</span><span class="punct">][</span><span class="number">0</span><span class="punct">-</span><span class="number">9</span><span class="punct">])+/</span><span class="regex">　上述正则表达式将会与任何由字母和数字组成的字符串，如 “aB0” 等相匹配。
<br /><span class="normal"><br /></span></span></pre></div><br />这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此，上述正则表达式将无法与诸如 “abc”等的字符串匹配，因为“abc”中的最后一个字符为字母而非数字。 <br />如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算，在多个不同的模式中任选一个进行匹配的话，可以使用管道符 “|”。例如：/to|too|2/　上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。 <br />正则表达式中还有一个较为常用的运算符，即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同，否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。例如：/[^A-C]/　上述字符串将会与目标对象中除A，B，和C之外的任何字符相匹配。一般来说，当“^”出现在 “[]”内时就被视做否定运算符；而当“^”位于“[]”之外，或没有“[]”时，则应当被视做定位符。 <br />最后，当用户需要在正则表达式的模式中加入元字符，并查找其匹配对象时，可以使用转义符“\”。例如：/Th\*/ 　上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。 <br />在构造正则表达式之后，就可以象数学表达式一样来求值，也就是说，可以从左至右并按照一个优先级顺序来求值。优先级如下： <br /><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="number">1．\</span> 转义符
<br /><span class="number">2．</span><span class="punct">(),</span><span class="punct">(</span><span class="char">?:</span><span class="punct">),</span><span class="punct">(</span><span class="char">?=</span><span class="punct">),</span><span class="punct">[]</span> 圆括号和方括号
<br /><span class="number">3．</span><span class="punct">*,</span><span class="punct">+,</span><span class="char">?,</span><span class="punct">{</span><span class="ident">n</span><span class="punct">},</span><span class="punct">{</span><span class="ident">n</span><span class="punct">,},</span><span class="punct">{</span><span class="ident">n</span><span class="punct">,</span><span class="ident">m</span><span class="punct">}</span> 限定符
<br /><span class="number">4．^</span><span class="punct">,</span><span class="global">$,</span> \<span class="ident">anymetacharacter</span> 位置和顺序
<br /><span class="number">5．</span><span class="punct">|“或”操作</span><br /></pre></div><p></p><p><span style="FONT-SIZE: 18pt">使用实例</span><br />在JavaScript 1.2中带有一个功能强大的RegExp()对象，可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式，并相应的返回true或false。 <br />我们可以使用JavaScript编写以下脚本，验证用户输入的邮件地址的有效性。 <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="punct">&lt;</span><span class="ident">html</span><span class="punct">&gt;</span><br /><span class="punct">&lt;</span><span class="ident">head</span><span class="punct">&gt;</span><br />　 <span class="punct">&lt;</span><span class="ident">script</span><span class="ident">language</span><span class="punct">="</span><span class="string">Javascript1.2</span><span class="punct">"&gt;</span><br />　　　　 <span class="punct">&lt;!--</span><span class="ident">start</span><span class="ident">hiding</span><br />　　　　 <span class="ident">function</span><span class="ident">verifyAddress</span><span class="punct">(</span><span class="ident">obj</span><span class="punct">)</span><br />　　　　　<span class="punct">{</span><br />　　　　　　<span class="ident">var</span><span class="ident">email</span><span class="punct">=</span><span class="ident">obj</span><span class="punct">.</span><span class="ident">email</span><span class="punct">.</span><span class="ident">value</span><span class="punct">;</span><br />　　　　　　<span class="ident">var</span><span class="ident">pattern</span><span class="punct">=</span><br /><span class="punct">/</span><span class="regex">^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(<span class="escape">\.</span>[a-zA-Z0-9_-])+</span><span class="punct">/;</span><br />　　　　　　<span class="ident">flag</span><span class="punct">=</span><span class="ident">pattern</span><span class="punct">.</span><span class="ident">test</span><span class="punct">(</span><span class="ident">email</span><span class="punct">);</span><br />　　　　　　<span class="keyword">if</span><span class="punct">(</span><span class="ident">flag</span><span class="punct">)</span><br />　　　　　　<span class="punct">{</span><br />　　　　　　　<span class="ident">alert</span><span class="punct">(“</span><span class="constant">Your</span><span class="ident">email</span><span class="ident">address</span><span class="ident">is</span><span class="ident">correct!”</span><span class="punct">);</span><br />　　　　　　　<span class="keyword">return</span><span class="constant">true</span><span class="punct">;</span><br />　　　　　　<span class="punct">}</span><br />　　　　　　<span class="keyword">else</span><br />　　　　　　　<span class="punct">{</span><br />　　　　　　　　<span class="ident">alert</span><span class="punct">(“</span><span class="constant">Please</span><span class="keyword">try</span><span class="ident">again!”</span><span class="punct">);</span><br />　　　　　　　　<span class="keyword">return</span><span class="constant">false</span><span class="punct">;</span><br />　　　　　　　 <span class="punct">}</span><br />　　　　　 <span class="punct">}</span><br />　　　　 <span class="punct">/</span><span class="regex"></span><span class="punct">/</span><span class="ident">stop</span><span class="ident">hiding</span><span class="punct">--&gt;</span><br />　　　 <span class="punct">&lt;/</span><span class="regex">script&gt; 
<br />　　&lt;</span><span class="punct">/</span><span class="ident">head</span><span class="punct">&gt;</span><br />　 <span class="punct">&lt;</span><span class="ident">body</span><span class="punct">&gt;</span><br />　　 <span class="punct">&lt;</span><span class="ident">form</span><span class="ident">onSubmit</span><span class="punct">="</span><span class="string">return verifyAddress(this);</span><span class="punct">"&gt;</span><br />　　　 <span class="punct">&lt;</span><span class="ident">input</span><span class="ident">name</span><span class="punct">="</span><span class="string">email</span><span class="punct">"</span><span class="ident">type</span><span class="punct">="</span><span class="string">text</span><span class="punct">"&gt;</span><br />　　　 <span class="punct">&lt;</span><span class="ident">input</span><span class="ident">type</span><span class="punct">="</span><span class="string">submit</span><span class="punct">"&gt;</span><br />　　　 <span class="punct">&lt;/</span><span class="regex">form&gt; 
<br />　　&lt;</span><span class="punct">/</span><span class="ident">body</span><span class="punct">&gt;</span><br /><span class="punct">&lt;/</span><span class="regex">html&gt; 
<br /><span class="normal"><br /></span></span></pre></div><p></p><p><span style="FONT-SIZE: 18pt">正则表达式对象</span><br />本对象包含正则表达式模式以及表明如何应用模式的标志。 <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br />语法 <span class="number">1</span><span class="ident">re</span><span class="punct">=</span><span class="punct">/</span><span class="regex">pattern</span><span class="punct">/[</span><span class="ident">flags</span><span class="punct">]</span><br />语法 <span class="number">2</span><span class="ident">re</span><span class="punct">=</span><span class="keyword">new</span><span class="constant">RegExp</span><span class="punct">("</span><span class="string">pattern</span><span class="punct">",["</span><span class="string">flags</span><span class="punct">"])</span><br /></pre></div><br />参数 <br />re <br />必选项。将要赋值为正则表达式模式的变量名。 
<p></p><p>Pattern <br />必选项。要使用的正则表达式模式。如果使用语法 1，用 "/" 字符分隔模式。如果用语法 2，用引号将模式引起来。 </p><p>Flags <br />可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用，可用的有： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">g</span> （全文查找出现的所有 <span class="ident">pattern）</span><br /><span class="ident">i</span> （忽略大小写） 
<br /><span class="ident">m</span> （多行查找） 
<br /></pre></div><p></p><p><span style="FONT-SIZE: 18pt">示例</span><br />下面的示例创建一个包含正则表达式模式及相关标志的对象(re)，向您演示正则表达式对象的用法。在本例中，作为结果的正则表达式对象又用于 match 方法中： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">MatchDemo</span><span class="punct">()</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">r</span><span class="punct">,</span><span class="ident">re</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 声明变量。
<br /><span class="ident">var</span><span class="ident">s</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain falls mainly in the plain</span><span class="punct">";</span><br /><span class="ident">re</span><span class="punct">=</span><span class="keyword">new</span><span class="constant">RegExp</span><span class="punct">("</span><span class="string">ain</span><span class="punct">","</span><span class="string">g</span><span class="punct">");</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 创建正则表达式对象。
<br /><span class="ident">r</span><span class="punct">=</span><span class="ident">s</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(</span><span class="ident">re</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 在字符串 <span class="ident">s</span> 中查找匹配。
<br /><span class="keyword">return</span><span class="punct">(</span><span class="ident">r</span><span class="punct">);</span><br /><span class="punct">}</span><br /></pre></div><p></p><p>返回值： ain,ain,ain,ain\\ <br />属性 lastIndex 属性 | source 属性\\ <br />方法 compile 方法 | exec 方法 | test 方法\\ <br />要求 版本 3\\ <br />请参阅 RegExp 对象 | 正则表达式语法 | String 对象\\</p><p><span style="FONT-SIZE: 18pt">exec 方法</span><br />用正则表达式模式在字符串中运行查找，并返回包含该查找结果的一个数组。 <br />rgExp.exec(str)</p><p>参数</p><p>rgExp <br />必选项。包含正则表达式模式和可用标志的正则表达式对象。 </p><p>str <br />必选项。要在其中执行查找的 String 对象或字符串文字。 </p><p>说明\\ <br />如果 exec 方法没有找到匹配，则它返回 null。如果它找到匹配，则 exec 方法返回一个数组，并且更新全局 RegExp 对象的属性，以反映匹配结果。数组的0元素包含了完整的匹配，而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志 (g) 的 match 方法。 <br />如果为正则表达式设置了全局标志，exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志，exec 忽略 lastIndex 的值，从字符串的起始位置开始搜索。</p><p>exec 方法返回的数组有三个属性，分别是 input、index 和 lastIndex。Input 属性包含了整个被查找的字符串。Index 属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastIndex 属性中包含了匹配中最后一个字符的下一个位置。</p><p>示例\\ <br />下面的例子举例说明了 exec 方法的用法： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">RegExpTest</span><span class="punct">()</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">ver</span><span class="punct">=</span><span class="constant">Number</span><span class="punct">(</span><span class="constant">ScriptEngineMajorVersion</span><span class="punct">()</span><span class="punct">+</span><span class="punct">"</span><span class="string">.</span><span class="punct">"</span><span class="punct">+</span><span class="constant">ScriptEngineMinorVersion</span><span class="punct">())</span><br /><span class="keyword">if</span><span class="punct">(</span><span class="ident">ver</span><span class="punct">&gt;=</span><span class="number">5.5</span><span class="punct">){</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 测试 <span class="constant">JScript</span> 的版本。
<br /><span class="ident">var</span><span class="ident">src</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain falls mainly in the plain.</span><span class="punct">";</span><br /><span class="ident">var</span><span class="ident">re</span><span class="punct">=</span><span class="punct">/</span><span class="regex"><span class="escape">\w</span>+</span><span class="punct">/</span><span class="ident">g</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 创建正则表达式模式。
<br /><span class="ident">var</span><span class="ident">arr</span><span class="punct">;</span><br /><span class="keyword">while</span><span class="punct">((</span><span class="ident">arr</span><span class="punct">=</span><span class="ident">re</span><span class="punct">.</span><span class="ident">exec</span><span class="punct">(</span><span class="ident">src</span><span class="punct">))</span><span class="punct">!=</span><span class="keyword">null</span><span class="punct">)</span><br /><span class="ident">document</span><span class="punct">.</span><span class="ident">write</span><span class="punct">(</span><span class="ident">arr</span><span class="punct">.</span><span class="ident">index</span><span class="punct">+</span><span class="punct">"</span><span class="string">-</span><span class="punct">"</span><span class="punct">+</span><span class="ident">arr</span><span class="punct">.</span><span class="ident">lastIndex</span><span class="punct">+</span><span class="ident">arr</span><span class="punct">+</span><span class="punct">"</span><span class="string"><span class="escape">\t</span></span><span class="punct">");</span><br /><span class="punct">}</span><br /><span class="keyword">else</span><span class="punct">{</span><br /><span class="ident">alert</span><span class="punct">("</span><span class="string">请使用 JScript 的更新版本</span><span class="punct">");</span><br /><span class="punct">}</span><br /><span class="punct">}</span><br /></pre></div><p></p><p>返回值：0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain</p><p>test 方法\\ <br />返回一个 Boolean 值，它指出在被查找的字符串中是否存在模式。 <br />rgexp.test(str) </p><p>参数\\ <br />rgexp <br />必选项。包含正则表达式模式或可用标志的正则表达式对象。 </p><p>str <br />必选项。要在其上测试查找的字符串。 </p><p>说明 <br />test 方法检查在字符串中是否存在一个模式，如果存在则返回 true，否则就返回 false。 <br />全局 RegExp 对象的属性不由 test 方法来修改。</p><p>示例 <br />下面的例子举例说明了 test 方法的用法： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">TestDemo</span><span class="punct">(</span><span class="ident">re</span><span class="punct">,</span><span class="ident">s</span><span class="punct">)</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">s1</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 声明变量。
<br /><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 检查字符串是否存在正则表达式。
<br /><span class="keyword">if</span><span class="punct">(</span><span class="ident">re</span><span class="punct">.</span><span class="ident">test</span><span class="punct">(</span><span class="ident">s</span><span class="punct">))</span><span class="punct">//</span><span class="regex"> 测试是否存在。
<br />s1 = " contains "; </span><span class="punct">//</span><span class="ident">s</span> 包含模式。
<br /><span class="keyword">else</span><br /><span class="ident">s1</span><span class="punct">=</span><span class="punct">"</span><span class="string"> does not contain </span><span class="punct">";</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span><span class="ident">s</span> 不包含模式。
<br /><span class="keyword">return</span><span class="punct">("</span><span class="string">'</span><span class="punct">"</span><span class="punct">+</span><span class="ident">s</span><span class="punct">+</span><span class="punct">"</span><span class="string">'</span><span class="punct">"</span><span class="punct">+</span><span class="ident">s1</span><span class="punct">+</span><span class="punct">"</span><span class="string">'</span><span class="punct">"+</span><span class="ident">re</span><span class="punct">.</span><span class="ident">source</span><span class="punct">+</span><span class="punct">"</span><span class="string">'</span><span class="punct">");</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 返回字符串。
<br /><span class="punct">}</span><br /></pre></div><p></p><p>函数调用：document.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain."));</p><p>返回值：'The rain in Spain falls mainly in the plain.' contains 'ain+'</p><p><span style="FONT-SIZE: 18pt">match 方法</span><br />使用正则表达式模式对字符串执行查找，并将包含查找的结果作为数组返回。\\ <br />stringObj.match(rgExp) </p><p>参数\\ <br />stringObj <br />必选项。对其进行查找的 String 对象或字符串文字。 </p><p>rgExp <br />必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。 </p><p>说明\\ <br />如果 match 方法没有找到匹配，返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果。 <br />match 方法返回的数组有三个属性：input、index 和 lastIndex。Input 属性包含整个的被查找字符串。Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。 <br />如果没有设置全局标志 (g)，数组的 0 元素包含整个匹配，而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的 exec 方法。如果设置了全局标志，元素 0 到 n 中包含所有匹配。</p><p>示例\\ <br />下面的示例演示了match 方法的用法： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">MatchDemo</span><span class="punct">()</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">r</span><span class="punct">,</span><span class="ident">re</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 声明变量。
<br /><span class="ident">var</span><span class="ident">s</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain falls mainly in the plain</span><span class="punct">";</span><br /><span class="ident">re</span><span class="punct">=</span><span class="punct">/</span><span class="regex">ain</span><span class="punct">/</span><span class="ident">i</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 创建正则表达式模式。
<br /><span class="ident">r</span><span class="punct">=</span><span class="ident">s</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(</span><span class="ident">re</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 尝试匹配搜索字符串。
<br /><span class="keyword">return</span><span class="punct">(</span><span class="ident">r</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 返回第一次出现 <span class="punct">"</span><span class="string">ain</span><span class="punct">"</span> 的地方。
<br /><span class="punct">}</span><br /></pre></div><br />返回值：ain 
<p></p><p>本示例说明带 g 标志设置的 match 方法的用法。 <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">MatchDemo</span><span class="punct">()</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">r</span><span class="punct">,</span><span class="ident">re</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 声明变量。
<br /><span class="ident">var</span><span class="ident">s</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain falls mainly in the plain</span><span class="punct">";</span><br /><span class="ident">re</span><span class="punct">=</span><span class="punct">/</span><span class="regex">ain</span><span class="punct">/</span><span class="ident">ig</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 创建正则表达式模式。
<br /><span class="ident">r</span><span class="punct">=</span><span class="ident">s</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(</span><span class="ident">re</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 尝试去匹配搜索字符串。
<br /><span class="keyword">return</span><span class="punct">(</span><span class="ident">r</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 返回的数组包含了所有 <span class="punct">"</span><span class="string">ain</span><span class="punct">"</span><br /><span class="punct">//</span><span class="regex"> 出现的四个匹配。
<br />}
<span class="normal"><br /></span></span></pre></div><br />返回值：ain,ain,ain,ain 
<p></p><p>上面几行代码演示了字符串文字的 match 方法的用法。 <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">var</span><span class="ident">r</span><span class="punct">,</span><span class="ident">re</span><span class="punct">=</span><span class="punct">"</span><span class="string">Spain</span><span class="punct">";</span><br /><span class="ident">r</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain</span><span class="punct">".</span><span class="ident">replace</span><span class="punct">(</span><span class="ident">re</span><span class="punct">,</span><span class="punct">"</span><span class="string">Canada</span><span class="punct">");</span><br /><span class="keyword">return</span><span class="ident">r</span><span class="punct">;</span><br /></pre></div><br />返回值：The rain in Canada 
<p></p><p><span style="FONT-SIZE: 18pt">search 方法</span><br />返回与正则表达式查找内容匹配的第一个子字符串的位置。</p><p>stringObj.search(rgExp)</p><p>参数\\ <br />stringObj <br />必选项。要在其上进行查找的 String 对象或字符串文字。 </p><p>rgExp <br />必选项。包含正则表达式模式和可用标志的正则表达式对象。 </p><p>说明</p><p>search 方法指明是否存在相应的匹配。如果找到一个匹配，search 方法将返回一个整数值，指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配，则返回 -1。</p><p>示例\\ <br />下面的示例演示了 search 方法的用法。 <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="ident">function</span><span class="constant">SearchDemo</span><span class="punct">()</span><br /><span class="punct">{</span><br /><span class="ident">var</span><span class="ident">r</span><span class="punct">,</span><span class="ident">re</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 声明变量。
<br /><span class="ident">var</span><span class="ident">s</span><span class="punct">=</span><span class="punct">"</span><span class="string">The rain in Spain falls mainly in the plain.</span><span class="punct">";</span><br /><span class="ident">re</span><span class="punct">=</span><span class="punct">/</span><span class="regex">falls</span><span class="punct">/</span><span class="ident">i</span><span class="punct">;</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 创建正则表达式模式。
<br /><span class="ident">r</span><span class="punct">=</span><span class="ident">s</span><span class="punct">.</span><span class="ident">search</span><span class="punct">(</span><span class="ident">re</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 查找字符串。
<br /><span class="keyword">return</span><span class="punct">(</span><span class="ident">r</span><span class="punct">);</span><span class="punct">/</span><span class="regex"></span><span class="punct">/</span> 返回 <span class="constant">Boolean</span> 结果。
<br /><span class="punct">}</span><br /></pre></div><br />返回值：18 
<p></p><p><span style="FONT-SIZE: 18pt">正则表达式语法</span><br />一个正则表达式就是由普通字符（例如字符 a 到 z）以及特殊字符（称为元字符）组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板，将某个字符模式与所搜索的字符串进行匹配。</p><p>这里有一些可能会遇到的正则表达式示例： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="constant">JScript</span><span class="constant">VBScript</span> 匹配 
<br /><span class="punct">/^\[</span> \<span class="ident">t</span><span class="punct">]*</span><span class="global">$/</span><span class="punct">"</span><span class="string">^<span class="escape">\[</span><span class="escape">\t</span>]*$</span><span class="punct">"</span> 匹配一个空白行。 
<br /><span class="punct">/\</span><span class="ident">d</span><span class="punct">{</span><span class="number">2</span><span class="punct">}-\</span><span class="ident">d</span><span class="punct">{</span><span class="number">5</span><span class="punct">}/</span><span class="regex"> "<span class="escape">\d</span>{2}-<span class="escape">\d</span>{5}" 验证一个ID 号码是否由一个2位数字，一个连字符以及一个5位数字组成。 
<br /></span><span class="punct">/&lt;(.*)&gt;.*&lt;\/</span><span class="regex"><span class="escape">\1</span>&gt;</span><span class="punct">/</span><span class="punct">"</span><span class="string">&lt;(.*)&gt;.*&lt;<span class="escape">\/\1</span>&gt;</span><span class="punct">"</span> 匹配一个 <span class="ident">HTML</span> 标记。 
<br /></pre></div><p></p><p>下表是元字符及其在正则表达式上下文中的行为的一个完整列表：</p><p>字符 描述 <br />\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如，'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 </p><p>^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性，^ 也匹配 '\n' 或 '\r' 之后的位置。 </p><p>$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性，$ 也匹配 '\n' 或 '\r' 之前的位置。 </p><p>* 匹配前面的子表达式零次或多次。例如，zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。 </p><p>+ 匹配前面的子表达式一次或多次。例如，'zo+' 能匹配 "zo" 以及 "zoo"，但不能匹配 "z"。+ 等价于 {1,}。 </p><p>? 匹配前面的子表达式零次或一次。例如，"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 </p><p>{n} n 是一个非负整数。匹配确定的 n 次。例如，'o{2}' 不能匹配 "Bob" 中的 'o'，但是能匹配 "food" 中的两个 o。 </p><p>{n,} n 是一个非负整数。至少匹配n 次。例如，'o{2,}' 不能匹配 "Bob" 中的 'o'，但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 </p><p>{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。刘， "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 </p><p>? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如，对于字符串 "oooo"，'o+?' 将匹配单个 "o"，而 'o+' 将匹配所有 'o'。 </p><p>. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符，请使用象 '[.\n]' 的模式。 <br />(pattern) 匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到，在VBScript 中使用 SubMatches 集合，在JScript 中则使用 $0…$9 属性。要匹配圆括号字符，请使用 '\(' 或 '\)'。 </p><p>(?:pattern) 匹配 pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如， 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 </p><p>(?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。例如， 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ，但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符，也就是说，在一个匹配发生后，在最后一次匹配之后立即开始下一次匹配的搜索，而不是从包含预查的字符之后开始。 </p><p>(?!pattern) 负向预查，在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows"，但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符，也就是说，在一个匹配发生后，在最后一次匹配之后立即开始下一次匹配的搜索，而不是从包含预查的字符之后开始 </p><p>x|y 匹配 x 或 y。例如，'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。 </p><p>[xyz] 字符集合。匹配所包含的任意一个字符。例如， '[abc]' 可以匹配 "plain" 中的 'a'。 </p><p>[^xyz] 负值字符集合。匹配未包含的任意字符。例如， '[^abc]' 可以匹配 "plain" 中的'p'。 </p><p>[a-z] 字符范围。匹配指定范围内的任意字符。例如，'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 </p><p>[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如，'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。 </p><p>\b 匹配一个单词边界，也就是指单词和空格间的位置。例如， 'er\b' 可以匹配"never" 中的 'er'，但不能匹配 "verb" 中的 'er'。 </p><p>\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er'，但不能匹配 "never" 中的 'er'。 </p><p>\cx 匹配由x指明的控制字符。例如， \cM 匹配一个 Control-M 或回车符。 x 的值必须为 A-Z 或 a-z 之一。否则，将 c 视为一个原义的 'c' 字符。 </p><p>\d 匹配一个数字字符。等价于 [0-9]。 </p><p>\D 匹配一个非数字字符。等价于 [^0-9]。 </p><p>\f 匹配一个换页符。等价于 \x0c 和 \cL。 </p><p>\n 匹配一个换行符。等价于 \x0a 和 \cJ。 </p><p>\r 匹配一个回车符。等价于 \x0d 和 \cM。 </p><p>\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 </p><p>\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 </p><p>\t 匹配一个制表符。等价于 \x09 和 \cI。 </p><p>\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 </p><p>\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 </p><p>\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 </p><p>\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如， '\x41' 匹配 "A"。'\x041' 则等价于 '\x04' &amp; "1"。正则表达式中可以使用 ASCII 编码。. </p><p>\num 匹配 num，其中 num 是一个正整数。对所获取的匹配的引用。例如，'(.)\1' 匹配两个连续的相同字符。 </p><p>\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。 </p><p>\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。 </p><p>\nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。 </p><p>\un 匹配 n，其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如， \u00A9 匹配版权符号 (?)。 </p><p><span style="FONT-SIZE: 18pt">优先权顺序</span><br />在构造正则表达式之后，就可以象数学表达式一样来求值，也就是说，可以从左至右并按照一个优先权顺序来求值。 </p><p>下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br />操作符 描述 
<br />\ 转义符 
<br /><span class="punct">(),</span><span class="punct">(</span><span class="char">?:</span><span class="punct">),</span><span class="punct">(</span><span class="char">?=</span><span class="punct">),</span><span class="punct">[]</span> 圆括号和方括号 
<br /><span class="punct">*,</span><span class="punct">+,</span><span class="char">?,</span><span class="punct">{</span><span class="ident">n</span><span class="punct">},</span><span class="punct">{</span><span class="ident">n</span><span class="punct">,},</span><span class="punct">{</span><span class="ident">n</span><span class="punct">,</span><span class="ident">m</span><span class="punct">}</span> 限定符 
<br />^<span class="punct">,</span><span class="global">$,</span> \<span class="ident">anymetacharacter</span> 位置和顺序 
<br /><span class="punct">|</span> “或”操作 
<br /></pre></div><p></p><p>普通字符</p><p>普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符，所有数字，所有标点符号以及一些符号。 </p><p>最简单的正则表达式是一个单独的普通字符，可以匹配所搜索字符串中的该字符本身。例如，单字符模式 'A' 可以匹配所搜索字符串中任何位置出现的字母 'A'。这里有一些单字符正则表达式模式的示例： <br /></p><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="punct">/</span><span class="regex">a</span><span class="punct">/</span><br /><span class="punct">/</span><span class="regex">7</span><span class="punct">/</span><br /><span class="punct">/</span><span class="regex">M</span><span class="punct">/</span><br /></pre></div><br />等价的 VBScript 单字符正则表达式为： <br /><div class="code_title">代码</div><div class="code_div"><pre><br /><span class="punct">"</span><span class="string">a</span><span class="punct">"</span><br /><span class="punct">"</span><span class="string">7</span><span class="punct">"</span><br /><span class="punct">"</span><span class="string">M</span><span class="punct">"</span><br /></pre></div><br />可以将多个单字符组合在一起得到一个较大的表达式。例如，下面的 JScript 正则表达式不是别的，就是通过组合单字符表达式 'a'、'7'以及 'M' 所创建出来的一个表达式。 
<p></p><p>/a7M/ <br />等价的 VBScript 表达式为：</p><p>"a7M" <br /></p><img src ="http://www.blogjava.net/pdw2009/aggbug/77650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-10-27 14:57 <a href="http://www.blogjava.net/pdw2009/archive/2006/10/27/77650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript常用校验代码</title><link>http://www.blogjava.net/pdw2009/archive/2006/10/27/77649.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 27 Oct 2006 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/10/27/77649.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/77649.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/10/27/77649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/77649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/77649.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: /** * 取得字符串的字节长度 */ 		代码																				function								 strlen(str){    								var								 i;    								var								 len;        len 								=								 								0						...&nbsp;&nbsp;<a href='http://www.blogjava.net/pdw2009/archive/2006/10/27/77649.html'>阅读全文</a><img src ="http://www.blogjava.net/pdw2009/aggbug/77649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-10-27 14:56 <a href="http://www.blogjava.net/pdw2009/archive/2006/10/27/77649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在b/s开发中经常用到的javaScript技术  </title><link>http://www.blogjava.net/pdw2009/archive/2006/04/28/43713.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 28 Apr 2006 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/04/28/43713.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/43713.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/04/28/43713.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/43713.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/43713.html</trackback:ping><description><![CDATA[
		<span id="ArticleContent1_ArticleContent1_lblContent">
				<br />一、验证类<br />1、数字验证内<br />  1.1 整数<br />  1.2 大于0的整数 （用于传来的ID的验证)<br />  1.3 负整数的验证<br />  1.4 整数不能大于iMax<br />  1.5 整数不能小于iMin<br />2、时间类<br />  2.1 短时间，形如 (13:04:06)<br />  2.2 短日期，形如 (2003-12-05)<br />  2.3 长时间，形如 (2003-12-05 13:04:06)<br />  2.4 只有年和月。形如(2003-05,或者2003-5)<br />  2.5 只有小时和分钟,形如(12:03)<br />3、表单类<br />  3.1 所有的表单的值都不能为空<br />  3.2 多行文本框的值不能为空。<br />  3.3 多行文本框的值不能超过sMaxStrleng<br />  3.4 多行文本框的值不能少于sMixStrleng<br />  3.5 判断单选框是否选择。<br />  3.6 判断复选框是否选择.<br />  3.7 复选框的全选，多选，全不选，反选<br />  3.8 文件上传过程中判断文件类型<br />4、字符类<br />  4.1 判断字符全部由a-Z或者是A-Z的字字母组成<br />  4.2 判断字符由字母和数字组成。<br />  4.3 判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母<br />  4.4 字符串替换函数.Replace();<br />5、浏览器类<br />  5.1 判断浏览器的类型<br />  5.2 判断ie的版本<br />  5.3 判断客户端的分辨率<br />  <br />6、结合类<br />  6.1 email的判断。<br />  6.2 手机号码的验证<br />  6.3 身份证的验证<br />  
<p>二、功能类</p><p>1、时间与相关控件类<br />  1.1 日历<br />  1.2 时间控件<br />  1.3 万年历<br />  1.4 显示动态显示时钟效果（文本，如OA中时间）<br />  1.5 显示动态显示时钟效果 (图像，像手表) <br />2、表单类<br />  2.1 自动生成表单<br />  2.2 动态添加，修改，删除下拉框中的元素<br />  2.3 可以输入内容的下拉框<br />  2.4 多行文本框中只能输入iMax文字。如果多输入了，自动减少到iMax个文字（多用于短信发送)<br />  <br />3、打印类<br />  3.1 打印控件<br />4、事件类<br />  4.1 屏蔽右键<br />  4.2 屏蔽所有功能键<br />  4.3 --&gt; 和&lt;-- F5 F11,F9,F1<br />  4.4 屏蔽组合键ctrl+N<br />5、网页设计类<br />  5.1 连续滚动的文字，图片（注意是连续的，两段文字和图片中没有空白出现）<br />  5.2 html编辑控件类<br />  5.3 颜色选取框控件<br />  5.4 下拉菜单<br />  5.5 两层或多层次的下拉菜单<br />  5.6 仿IE菜单的按钮。（效果如rongshuxa.com的导航栏目)<br />  5.7 状态栏，title栏的动态效果（例子很多，可以研究一下）<br />  5.8 双击后，网页自动滚屏<br />6、树型结构。<br />  6.1 asp+SQL版<br />  6.2 asp+xml+sql版<br />  6.3 java+sql或者java+sql+xml<br />7、无边框效果的制作<br />8、连动下拉框技术<br />9、文本排序</p><p><br />一、验证类<br />1、数字验证内<br />  1.1 整数<br />      /^(-|+)?d+$/.test(str)<br />  1.2 大于0的整数 （用于传来的ID的验证)<br />      /^d+$/.test(str)<br />  1.3 负整数的验证<br />      /^-d+$/.test(str)<br />2、时间类<br />  2.1 短时间，形如 (13:04:06)<br />      function isTime(str)<br />      {<br />        var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);<br />        if (a == null) {alert('输入的参数不是时间格式'); return false;}<br />        if (a[1]&gt;24 || a[3]&gt;60 || a[4]&gt;60)<br />        {<br />          alert("时间格式不对");<br />          return false<br />        }<br />        return true;<br />      }<br />  2.2 短日期，形如 (2003-12-05)<br />      function strDateTime(str)<br />      {<br />         var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/); <br />         if(r==null)return false; <br />         var d= new Date(r[1], r[3]-1, r[4]); <br />         return (d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]);<br />      }<br />  2.3 长时间，形如 (2003-12-05 13:04:06)<br />      function strDateTime(str)<br />      {<br />        var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/; <br />        var r = str.match(reg); <br />        if(r==null)return false; <br />        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); <br />        return (d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]&amp;&amp;d.getHours()==r[5]&amp;&amp;d.getMinutes()==r[6]&amp;&amp;d.getSeconds()==r[7]);<br />      }<br />  2.4 只有年和月。形如(2003-05,或者2003-5)<br />  2.5 只有小时和分钟,形如(12:03)<br />3、表单类<br />  3.1 所有的表单的值都不能为空<br />      &lt;input onblur="if(this.value.replace(/^s+|s+$/g,'')=='')alert('不能为空!')"&gt;<br />  3.2 多行文本框的值不能为空。<br />  3.3 多行文本框的值不能超过sMaxStrleng<br />  3.4 多行文本框的值不能少于sMixStrleng<br />  3.5 判断单选框是否选择。<br />  3.6 判断复选框是否选择.<br />  3.7 复选框的全选，多选，全不选，反选<br />  3.8 文件上传过程中判断文件类型<br />4、字符类<br />  4.1 判断字符全部由a-Z或者是A-Z的字字母组成<br />      &lt;input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"&gt;<br />  4.2 判断字符由字母和数字组成。<br />      &lt;input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"&gt;<br />  4.3 判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母<br />      /^([a-zA-z_]{1})([w]*)$/g.test(str)<br />  4.4 字符串替换函数.Replace();<br />5、浏览器类<br />  5.1 判断浏览器的类型<br />      window.navigator.appName<br />  5.2 判断ie的版本<br />      window.navigator.appVersion<br />  5.3 判断客户端的分辨率<br />      window.screen.height;  window.screen.width;<br />  <br />6、结合类<br />  6.1 email的判断。<br />      function ismail(mail)<br />      {<br />        return(new RegExp(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail));<br />      }<br />  6.2 手机号码的验证<br />  6.3 身份证的验证<br />      function isIdCardNo(num)<br />      {<br />        if (isNaN(num)) {alert("输入的不是数字！"); return false;}<br />        var len = num.length, re; <br />        if (len == 15)<br />          re = new RegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);<br />        else if (len == 18)<br />          re = new RegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);<br />        else {alert("输入的数字位数不对！"); return false;}<br />        var a = num.match(re);<br />        if (a != null)<br />        {<br />          if (len==15)<br />          {<br />            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);<br />            var B = D.getYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;D.getDate()==a[5];<br />          }<br />          else<br />          {<br />            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);<br />            var B = D.getFullYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;D.getDate()==a[5];<br />          }<br />          if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对！"); return false;}<br />        }<br />        return true;<br />      }</p><p>3.7 复选框的全选，多选，全不选，反选<br />&lt;form name=hrong&gt;<br />&lt;input type=checkbox name=All onclick="checkAll('mm')"&gt;全选&lt;br/&gt;<br />&lt;input type=checkbox name=mm onclick="checkItem('All')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm onclick="checkItem('All')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm onclick="checkItem('All')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm onclick="checkItem('All')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm onclick="checkItem('All')"&gt;&lt;br/&gt;&lt;br/&gt;</p><p><br />&lt;input type=checkbox name=All2 onclick="checkAll('mm2')"&gt;全选&lt;br/&gt;<br />&lt;input type=checkbox name=mm2 onclick="checkItem('All2')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm2 onclick="checkItem('All2')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm2 onclick="checkItem('All2')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm2 onclick="checkItem('All2')"&gt;&lt;br/&gt;<br />&lt;input type=checkbox name=mm2 onclick="checkItem('All2')"&gt;&lt;br/&gt;</p><p>&lt;/form&gt;</p><p>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function checkAll(str)<br />{<br />  var a = document.getElementsByName(str);<br />  var n = a.length;<br />  for (var i=0; i&lt;n; i++)<br />  a[i].checked = window.event.srcElement.checked;<br />}<br />function checkItem(str)<br />{<br />  var e = window.event.srcElement;<br />  var all = eval("document.hrong."+ str);<br />  if (e.checked)<br />  {<br />    var a = document.getElementsByName(e.name);<br />    all.checked = true;<br />    for (var i=0; i&lt;a.length; i++)<br />    {<br />      if (!a[i].checked){ all.checked = false; break;}<br />    }<br />  }<br />  else all.checked = false;<br />}<br />&lt;/SCRIPT&gt;</p><p>3.8 文件上传过程中判断文件类型<br />&lt;input type=file onchange="alert(this.value.match(/^(.*)(.)(.{1,8})$/)[3])"&gt;</p><p>画图:<br />&lt;OBJECT <br />id=S <br />style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px" <br />height=240 <br />width=392 <br />classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6"&gt;<br />&lt;/OBJECT&gt;<br />&lt;SCRIPT&gt;<br />S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);<br />S.DrawingSurface.ArcRadians(30,0,0,30,50,60);<br />S.DrawingSurface.Line(10,10,100,100);<br />&lt;/SCRIPT&gt;</p><p>写注册表：<br />&lt;SCRIPT&gt;<br />var WshShell = WScript.CreateObject("WScript.Shell");<br />WshShell.RegWrite ("HKCUSoftwareACMEFortuneTeller", 1, "REG_BINARY");<br />WshShell.RegWrite ("HKCUSoftwareACMEFortuneTellerMindReader", "Goocher!", "REG_SZ");<br />var bKey =    WshShell.RegRead ("HKCUSoftwareACMEFortuneTeller");<br />WScript.Echo (WshShell.RegRead ("HKCUSoftwareACMEFortuneTellerMindReader"));<br />WshShell.RegDelete ("HKCUSoftwareACMEFortuneTellerMindReader");<br />WshShell.RegDelete ("HKCUSoftwareACMEFortuneTeller");<br />WshShell.RegDelete ("HKCUSoftwareACME");<br />&lt;/SCRIPT&gt;</p><p>TABLAE相关(客户端动态增加行列）<br />&lt;HTML&gt;<br />&lt;SCRIPT LANGUAGE="JScript"&gt;<br />function numberCells() {<br />    var count=0;<br />    for (i=0; i &lt; document.all.mytable.rows.length; i++) {<br />        for (j=0; j &lt; document.all.mytable.rows(i).cells.length; j++) {<br />            document.all.mytable.rows(i).cells(j).innerText = count;<br />            count++;<br />        }<br />    }<br />}<br />&lt;/SCRIPT&gt;<br />&lt;BODY onload="numberCells()"&gt;<br />&lt;TABLE id=mytable border=1&gt;<br />&lt;TR&gt;&lt;TH&gt; &lt;/TH&gt;&lt;TH&gt; &lt;/TH&gt;&lt;TH&gt; &lt;/TH&gt;&lt;TH&gt; &lt;/TH&gt;&lt;/TR&gt;<br />&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;/TR&gt;<br />&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;/TR&gt;<br />&lt;/TABLE&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt; </p><p>１．身份证严格验证：</p><p>&lt;script&gt;<br />var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:" 黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42: "湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54: "西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91: "国外"}<br />  <br />function cidInfo(sId){<br /> var iSum=0<br /> var info=""<br /> if(!/^d{17}(d|x)$/i.test(sId))return false;<br /> sId=sId.replace(/x$/i,"a");<br /> if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";<br /> sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));<br /> var d=new Date(sBirthday.replace(/-/g,"/"))<br /> if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";<br /> for(var i = 17;i&gt;=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)<br /> if(iSum%11!=1)return "Error:非法证号";<br /> return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")<br />}</p><p>document.write(cidInfo("380524198002300016"),"&lt;br/&gt;");<br />document.write(cidInfo("340524198002300019"),"&lt;br/&gt;")<br />document.write(cidInfo("340524197711111111"),"&lt;br/&gt;")<br />document.write(cidInfo("34052419800101001x"),"&lt;br/&gt;");<br />&lt;/script&gt;</p><p>２．验证ＩＰ地址<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function isip(s){<br /> var check=function(v){try{return (v&lt;=255 &amp;&amp; v&gt;=0)}catch(x){return false}};<br /> var re=s.split(".")<br /> return (re.length==4)?(check(re[0]) &amp;&amp; check(re[1]) &amp;&amp; check(re[2]) &amp;&amp; check(re[3])):false<br />}</p><p>var s="202.197.78.129";<br />alert(isip(s))<br />&lt;/SCRIPT&gt;</p><p> </p><p>３．加sp1后还能用的无边框窗口！！<br />&lt;HTML XMLNS:IE&gt;<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />&lt;IE:Download ID="include" STYLE="behavior:url(#default#download)" /&gt;<br />&lt;title&gt;Chromeless Window&lt;/title&gt;</p><p>&lt;SCRIPT LANGUAGE="JScript"&gt;<br />/*--- Special Thanks For andot ---*/</p><p>/*<br /> This following code are designed and writen by Windy_sk &lt;<a href="mailto:seasonx@163.net">seasonx@163.net</a>&gt;<br /> You can use it freely, but u must held all the copyright items!<br />*/</p><p>/*--- Thanks For andot Again ---*/</p><p>var CW_width = 400;<br />var CW_height = 300;<br />var CW_top = 100;<br />var CW_left = 100;<br />var CW_url = "/";<br />var New_CW = window.createPopup();<br />var CW_Body = New_CW.document.body;<br />var content = "";<br />var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";</p><p>//Build Window<br />include.startDownload(CW_url, function(source){content=source});</p><p>function insert_content(){<br /> var temp = "";<br /> CW_Body.style.overflow  = "hidden";<br /> CW_Body.style.backgroundColor = "white";<br /> CW_Body.style.border  =  "solid black 1px";<br /> content = content.replace(/&lt;a ([^&gt;]*)&gt;/g,"&lt;a onclick='parent.open(this.href);return false' $1&gt;");<br /> temp += "&lt;table width=100% height=100% cellpadding=0 cellspacing=0 border=0&gt;";<br /> temp += "&lt;tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick="Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'&gt;";<br /> temp += "&lt;td style='color:#ffffff;padding-left:5px'&gt;Chromeless Window For IE6 SP1&lt;/td&gt;";<br /> temp += "&lt;td style='color:#ffffff;padding-right:5px;' align=right&gt;";<br /> temp += "&lt;span id=Help  onclick="alert('Chromeless Window For IE6 SP1  -  Ver 1.0 Code By Windy_sk Special Thanks For andot')" style=""+CSStext+"font-family:System;padding-right:2px;"&gt;?&lt;/span&gt;";<br /> temp += "&lt;span id=Min   onclick='parent.New_CW.hide();parent.blur()' style=""+CSStext+"font-family:Webdings;" title='Minimum'&gt;0&lt;/span&gt;";<br /> temp += "&lt;span id=Max   onclick="this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" style=""+CSStext+"font-family:Webdings;" title='Maximum'&gt;1&lt;/span&gt;";<br /> temp += "&lt;span id=Close onclick='parent.opener=null;parent.close()' style=""+CSStext+"font-family:System;padding-right:2px;" title='Close'&gt;x&lt;/span&gt;";<br /> temp += "&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;";<br /> temp += "&lt;div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'&gt;";<br /> temp += content;<br /> temp += "&lt;/div&gt;";<br /> temp += "&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;";<br /> CW_Body.innerHTML = temp;<br />}</p><p>setTimeout("insert_content()",1000);</p><p>var if_max = true;<br />function show_CW(){<br /> window.moveTo(10000, 10000);<br /> if(if_max){<br />  New_CW.show(CW_top, CW_left, CW_width, CW_height);<br />  if(typeof(New_CW.document.all.include)!="undefined"){<br />   New_CW.document.all.include.style.width = CW_width;<br />   New_CW.document.all.Max.innerText = "1";<br />  }<br />  <br /> }else{<br />  New_CW.show(0, 0, screen.width, screen.height);<br />  New_CW.document.all.include.style.width = screen.width;<br /> }<br />}</p><p>window.onfocus  = show_CW;<br />window.onresize = show_CW;</p><p>// Move Window<br />var drag_x,drag_y,draging=false</p><p>function drag_move(e){<br /> if (draging){<br />  New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);<br />  return false;<br /> }<br />}</p><p>function drag_down(e){<br /> if(e.button==2)return;<br /> if(New_CW.document.body.offsetWidth==screen.width &amp;&amp; New_CW.document.body.offsetHeight==screen.height)return;<br /> drag_x=e.clientX;<br /> drag_y=e.clientY;<br /> draging=true;<br /> e.srcElement.setCapture();<br />}</p><p>function drag_up(e){<br /> draging=false;<br /> e.srcElement.releaseCapture();<br /> if(New_CW.document.body.offsetWidth==screen.width &amp;&amp; New_CW.document.body.offsetHeight==screen.height) return;<br /> CW_top  = e.screenX-drag_x;<br /> CW_left = e.screenY-drag_y;<br />}</p><p>&lt;/SCRIPT&gt;<br />&lt;/HTML&gt;</p><p>电话号码的验证</p><p>要求：<br />　　(1)电话号码由数字、"("、")"和"-"构成<br />　　(2)电话号码为3到8位<br />　　(3)如果电话号码中包含有区号，那么区号为三位或四位<br />　　(4)区号用"("、")"或"-"和其他部分隔开<br />　　(5)移动电话号码为11或12位，如果为12位,那么第一位为0<br />　　(6)11位移动电话号码的第一位和第二位为"13"<br />　　(7)12位移动电话号码的第二位和第三位为"13"<br />　　根据这几条规则，可以与出以下正则表达式：<br />　　(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)</p><p><br />&lt;script language="javascript"&gt;<br />function PhoneCheck(s) {<br />var str=s;<br />var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/<br />alert(reg.test(str));<br />}<br />&lt;/script&gt;<br />&lt;input type=text name="iphone"&gt;<br />&lt;input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check"&gt;</p><p>具有在输入非数字字符不回显的效果，即对非数字字符的输入不作反应。<br />function numbersonly(field,event){<br /> var key,keychar;<br /> if(window.event){<br />  key = window.event.keyCode;<br /> }<br /> else if (event){<br />  key = event.which;<br /> }<br /> else{<br />  return true<br /> }<br /> keychar = String.fromCharCode(key);<br /> if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){<br />  return true;<br /> }<br /> else if(("0123456789.").indexOf(keychar)&gt;-1){<br />  window.status = "";<br />  return true;<br /> }<br /> else {<br />  window.status = "Field excepts numbers only";<br />  return false;<br /> }<br />}</p><p>验证ip </p><p>str=document.RegExpDemo.txtIP.value;<br />if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)<br />{<br /> window.alert('错误的IP地址格式');<br /> document.RegExpDemo.txtIP.select();<br /> document.RegExpDemo.txtIP.focus();<br /> return;<br />}<br />if(RegExp.$1&lt;1 || RegExp.$1&gt;254||RegExp.$2&lt;0||RegExp.$2&gt;254||RegExp.$3&lt;0||RegExp.$3&gt;254||RegExp.$4&lt;1||RegExp.$4&gt;254)<br />{<br /> window.alert('错误的IP地址');<br /> document.RegExpDemo.txtIP.select();<br /> document.RegExpDemo.txtIP.focus();<br /> return;<br />}<br />//剔除 如  010.020.020.03 前面 的0 <br />var str=str.replace(/0(d)/g,"$1");<br />str=str.replace(/0(d)/g,"$1");<br />window.alert(str);<br /></p></span>
<img src ="http://www.blogjava.net/pdw2009/aggbug/43713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-04-28 09:43 <a href="http://www.blogjava.net/pdw2009/archive/2006/04/28/43713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天又做的一个页面!</title><link>http://www.blogjava.net/pdw2009/archive/2006/03/06/33895.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Mon, 06 Mar 2006 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/03/06/33895.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/33895.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/03/06/33895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/33895.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/33895.html</trackback:ping><description><![CDATA[<P>&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;<BR>&lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt;<BR>&lt;%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %&gt;<BR>&lt;%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %&gt;</P>
<P>&lt;%@ page import="com.unicom.gzaddr.entity.vo.AddressSearchVO"%&gt;<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;html:html locale="true"&gt;<BR>&nbsp; &lt;head&gt;<BR>&nbsp; &lt;html:base /&gt;<BR>&nbsp; &lt;title&gt;综合搜索&lt;/title&gt;<BR>&nbsp; &lt;meta http-equiv="pragma" content="no-cache"&gt;<BR>&nbsp; &lt;meta http-equiv="cache-control" content="no-cache"&gt;<BR>&nbsp; &lt;meta http-equiv="expires" content="0"&gt;<BR>&nbsp; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<BR>&nbsp; &lt;meta http-equiv="description" content="This is my page"&gt;<BR>&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;<BR>&nbsp; &lt;style type="text/css"&gt;<BR>&nbsp;&nbsp;&nbsp; #y_tab {<BR>&nbsp;&nbsp;&nbsp; LINE-HEIGHT: normal; HEIGHT: 28px<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; #y_tab UL {<BR>&nbsp;&nbsp; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; #y_tab LI {<BR>&nbsp;&nbsp;&nbsp; FONT-SIZE: 14px; BACKGROUND: url(../images/btn.gif) no-repeat left top; FLOAT: left; MARGIN: 0px 0px 0px 1px; WIDTH: 80px; LINE-HEIGHT: 28px; HEIGHT: 28px<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;#y_tab LI A {<BR>&nbsp; DISPLAY: block; FONT-SIZE: 14px; WIDTH: 80px; COLOR: #000; FONT-FAMILY: Arial; HEIGHT: 28px; TEXT-DECORATION: none<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;#y_tab .yschfirst {<BR>&nbsp;&nbsp; FONT-WEIGHT: bold; BACKGROUND: url(../images/btn_cur.gif) no-repeat left top; COLOR: #fff<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;#y_tab #cur A {<BR>&nbsp;&nbsp; FONT-WEIGHT: bold; BACKGROUND-IMAGE: url(../images/btn_cur.gif); COLOR: #fff<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;#y_sch_box_input {<BR>&nbsp;&nbsp; BORDER-RIGHT: #ffb900 1px solid; BORDER-TOP: #ffb900 1px solid; PADDING-LEFT: 3px; FONT-SIZE: 14px; BORDER-LEFT: #ffb900 1px solid; WIDTH: 207px; PADDING-TOP: 2px; BORDER-BOTTOM: #ffb900 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #fff<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;.y_sch_box_btn {<BR>&nbsp;&nbsp; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 80px; CURSOR: pointer; LINE-HEIGHT: 20px; PADDING-TOP: 0px; HEIGHT: 25px<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;.result_bar{<BR>&nbsp;&nbsp; BORDER-BOTTOM: #dcdcdc 1px solid; HEIGHT: 23px; BACKGROUND-COLOR: #f9f9f8;COLOR: #668bf1;font-size:12px;FONT-WEIGHT: bold;<BR>&nbsp;}<BR>&nbsp;.table_border_end{<BR>&nbsp;&nbsp; BORDER-BOTTOM: #ffffff 1px solid; background-color:#f5f5f5;font-size:12px;color:#555555<BR>&nbsp;}<BR>&nbsp; &lt;/style&gt;<BR>&nbsp; &lt;script language="JavaScript" type="text/JavaScript"&gt;<BR>&nbsp;&nbsp;&nbsp; var old_obj=false;<BR>&lt;!--<BR>function MM_reloadPage(init) {&nbsp; //reloads the window if Nav4 resized<BR>&nbsp; if (init==true) with (navigator) {if ((appName=="Netscape")&amp;&amp;(parseInt(appVersion)==4)) {<BR>&nbsp;&nbsp;&nbsp; document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}<BR>&nbsp; else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();<BR>}<BR>MM_reloadPage(true);<BR>//--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; function sb(obj){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value=obj;<BR>&nbsp;&nbsp;&nbsp; if(obj=="address"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=event.srcElement.parentElement.parentElement;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; old_obj=srcobj;<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="地址";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="address"<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";</P>
<P>&nbsp;&nbsp;&nbsp; }else if (obj=="name"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=event.srcElement.parentElement.parentElement;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; old_obj=srcobj;<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="名称";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="name";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; }else if(obj=="mobil"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=event.srcElement.parentElement.parentElement;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; old_obj=srcobj;<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="手机号码";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="mobil";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp; }else if(obj=="standard"){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var srcobj=event.srcElement.parentElement.parentElement;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; old_obj=srcobj;<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="地址标准化";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="standard";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; function sb_r(obj){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj=="address"){<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tab=document.getElementById("y_tab");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var LIlist=tab.getElementsByTagName("LI");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("LIlist size-&gt;"+LIlist.length);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=LIlist[0];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("srcobj"+srcobj);<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="地址";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="address"<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp; }else if(obj=="name"){<BR>&nbsp;&nbsp;&nbsp;&nbsp; var tab=document.getElementById("y_tab");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var LIlist=tab.getElementsByTagName("LI");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("LIlist size-&gt;"+LIlist.length);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=LIlist[1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="名称";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="name";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; }else if(obj=="mobil"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tab=document.getElementById("y_tab");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var LIlist=tab.getElementsByTagName("LI");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("LIlist size-&gt;"+LIlist.length);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=LIlist[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="手机号码";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="mobil";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="&lt;a href='#' onMouseDown=sb('standard')&gt;地址标准化&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp; }else if(obj=="standard"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tab=document.getElementById("y_tab");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var LIlist=tab.getElementsByTagName("LI");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("LIlist size-&gt;"+LIlist.length);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcobj=LIlist[3];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("standard").innerHTML="地址标准化";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("type").value="standard";<BR>&nbsp;&nbsp;&nbsp;&nbsp; srcobj.className="yschfirst";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("address").innerHTML="&lt;a href='#' onMouseDown=sb('address')&gt;地址&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("name").innerHTML="&lt;a href='#' onMouseDown=sb('name')&gt;名称&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").parentElement.className="";<BR>&nbsp;&nbsp;&nbsp;&nbsp; document.all("mobil").innerHTML="&lt;a href='#' onMouseDown=sb('mobil')&gt;手机号码&lt;/a&gt;";<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; <BR>&nbsp; <BR>&nbsp; &lt;/script&gt;<BR>&nbsp; <BR>&nbsp; &lt;/head&gt;<BR>&nbsp; &lt;body topmargin="0" leftmargin="0"&gt;</P>
<P>&nbsp; &lt;Br&gt;&lt;br&gt;<BR>&nbsp; &lt;table width="500" height="28px"&nbsp; border="0" align="center" cellpadding="0" cellspacing="0" id="y_tab"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr align="center" id="tr1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center" id="td1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;UL&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%if(request.getAttribute("type")==null){%&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LI class="yschfirst"&gt;<BR>&nbsp;&nbsp; &lt;%}else{%&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LI&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%}%&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span id="address"&gt;地址&lt;/span&gt;<BR>&nbsp;&nbsp; &lt;/LI&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LI&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span id="name" &gt;&lt;a&nbsp; href="#" onMouseDown="sb('name')"&gt;名称&lt;/a&gt;&lt;/span&gt;<BR>&nbsp;&nbsp; &lt;/LI&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LI&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span id="mobil" &gt;&lt;a&nbsp; href="#" onMouseDown="sb('mobil')"&gt;手机号码&lt;/a&gt;&lt;/span&gt;<BR>&nbsp;&nbsp; &lt;/LI&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LI&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span id="standard" &gt;&lt;a&nbsp; href="#" onMouseDown="sb('standard')"&gt;地址标准化&lt;/a&gt;&lt;/span&gt;<BR>&nbsp;&nbsp; &lt;/LI&gt;<BR>&nbsp;&nbsp;&lt;/UL&gt;<BR>&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&lt;/tr&gt;&nbsp; <BR>&nbsp; &lt;/table&gt;<BR>&nbsp; &lt;table width="550" height="70px"&nbsp; border="0" align="center" cellpadding="0" cellspacing="0"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr height="5px"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="5px" height="5px"&nbsp; background="../images/y_box_a.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp; &lt;td width="590px" height="5px" background="../images/y_box_top_bg.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp; &lt;td width="5px" height="5px" background="../images/y_box_b.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr bgcolor="#ffffc6" height="60px"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;form action="&lt;%=request.getContextPath()%&gt;/allSearchAction.do?method=searchDo" method="post" name="form1"&gt;<BR>&nbsp;&nbsp; &lt;td width="600" height="60px" colspan="3" style="border-right:1px solid #FFA800;border-left:1px solid #FFA800"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;nbsp;&lt;input type="hidden" name="type" id="type" value="address"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%if(request.getAttribute("searchText")==null){%&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="text" id="y_sch_box_input" name="searchText" &gt;<BR>&nbsp;&nbsp;&nbsp; &lt;%}else{%&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="text" id="y_sch_box_input" name="searchText" value="&lt;%=(String)request.getAttribute("searchText")%&gt;"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;%}%&gt;<BR>&nbsp;&nbsp;&nbsp; &amp;nbsp;&amp;nbsp;&lt;input type="submit" class="y_sch_box_btn" value="搜&nbsp;&nbsp; 索"&gt; <BR>&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp; &lt;/form&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="5px" height="5px"&nbsp; background="../images/y_box_d.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp; &lt;td width="590px" height="5px" background="../images/y_box_bot_bg.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp; &lt;td width="5px" height="5px" background="../images/y_box_c.gif"&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp; &lt;/table&gt;<BR>&nbsp; &lt;table width="550" border="0" align="center" cellpadding="1" cellspacing="0"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr class="result_bar"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;span id="result_title"&gt;搜索结果&lt;/span&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;logic:equal name="have_return" scope="request" value="false"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&nbsp; class="table_border_end"&gt;搜索不到符合条件的记录!&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;logic:equal name="have_return" scope="request" value="true"&gt; &lt;!--表示搜索得到记录 --&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="type" scope="request" value="address"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:present name="dataList" scope="request"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:iterate name="dataList" scope="request" id="xdata" type="com.unicom.gzaddr.entity.vo.AddressSearchVO"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&nbsp; class="table_border_end"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:link page="/addrview.do?method=view" paramProperty="addr_id" paramName="xdata"&nbsp; paramId="addr_id"&nbsp; style="color:blue;font-size:12px; "&gt; &lt;bean:write name="xdata" property="addr_name"/&gt;&lt;/html:link&gt;&lt;br&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="xdata" property="addr_path"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:iterate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:present&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 地址标准化 --&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="type" scope="request" value="standard"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&nbsp; class="table_border_end"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="result" scope="request" filter="false"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<BR>&nbsp; &lt;/table&gt;<BR>&nbsp; &lt;p&gt;&amp;nbsp;&lt;/p&gt;<BR>&nbsp; &lt;p&gt;&lt;br&gt;<BR>&nbsp; &lt;/p&gt;<BR>&nbsp; &lt;%<BR>&nbsp;&nbsp;&nbsp; if(request.getAttribute("type")!=null){<BR>&nbsp; %&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SCRIPT&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a="&lt;%=(String)request.getAttribute("type")%&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb_r(a);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SCRIPT&gt;<BR>&nbsp; &lt;%}%&gt;<BR>&nbsp; &lt;/body&gt;<BR>&lt;/html:html&gt;<BR><IMG alt="" hspace=0 src="C:\Documents and Settings\KT4600\桌面\p.rar" align=baseline border=0></P><img src ="http://www.blogjava.net/pdw2009/aggbug/33895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-03-06 18:00 <a href="http://www.blogjava.net/pdw2009/archive/2006/03/06/33895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 操作字符串 </title><link>http://www.blogjava.net/pdw2009/archive/2006/02/23/32155.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Thu, 23 Feb 2006 09:54:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2006/02/23/32155.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/32155.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2006/02/23/32155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/32155.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/32155.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=4 width="95%" border=0>
<P>
<TBODY>
<TR>
<TD class=textblack><B> JavaScript 操作字符串</B> </TD></TR>
<TR>
<TD class=textblack></TD></TR>
<TR>
<TD class=textgray>
<P>
<P align=left>虽然 JavaScript 有很多用处，但是处理字符串是其中最流行的一个。下面让我们深入地分析一下使用 JavaScript 操作字符串。在 JavaScript 中， String 是对象。 String 对象并不是以字符数组的方式存储的，所以我们必须使用内建函数来操纵它们的值。这些内建函数提供了不同的方法来访问字符串变量的内容。下面我们详细看一下这些函数。 </P>
<P align=left><STRONG>包罗万象 </STRONG><STRONG></STRONG></P>
<P align=left>操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多，比如说从一个字符串是提取出一部分内容来，或者确定一个字符串是否包含一个特定的字符。下面的 JavaScript 函数为开发人员提供了他们所需要的所有功能： </P>
<P align=left>•&nbsp; concat() – 将两个或多个字符的文本组合起来，返回一个新的字符串。 </P>
<P align=left>•&nbsp; indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项，返回 -1 。 </P>
<P align=left>•&nbsp; charAT() – 返回指定位置的字符。 </P>
<P align=left>•&nbsp; lastIndexOf() – 返回字符串中一个子串最后一处出现的索引，如果没有匹配项，返回 -1 。 </P>
<TABLE cellSpacing=0 cellPadding=0 width=0 align=right border=0>
<TBODY>
<TR>
<TD align=middle></TD></TR>
<TR>
<TD><!--start banner ad--><!--ba-->
<SCRIPT language=JavaScript1.1 src="http://ad.cn.doubleclick.net/adj/messagingplus.zdnet.com.cn/developer/webdevelop;sz=1x1;ord=1257670434?"> </SCRIPT>
<!-- Sniffer Code for Flash 5 -->
<SCRIPT language=VBScript> 
on error resume next 
ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))
</SCRIPT>
<NOEMBED>
<a href="http://ad.cn.doubleclick.net/click%3Bh=v5|3395|3|0|%2a|t%3B27671779%3B0-0%3B0%3B10768906%3B31-1|1%3B15038097|15055993|1%3B%3B%7Esscs%3D%3fhttp%3a%2f%2fwww.site.com" target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>
</NOEMBED><NOSCRIPT>
<a href="http://ad.cn.doubleclick.net/click%3Bh=v5|3395|3|0|%2a|t%3B27671779%3B0-0%3B0%3B10768906%3B31-1|1%3B15038097|15055993|1%3B%3B%7Esscs%3D%3fhttp%3a%2f%2fwww.site.com" target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>
</NOSCRIPT><NOSCRIPT> <A HREF="http://ad.cn.doubleclick.net/jump/messagingplus.zdnet.com.cn/developer/webdevelop;sz=1x1;ord=1257670434?"> <IMG SRC="http://ad.cn.doubleclick.net/ad/messagingplus.zdnet.com.cn/developer/webdevelop;sz=1x1;ord=1257670434?" border=0 ></A> 
      </NOSCRIPT><!--end banner ad--></TD></TR></TBODY></TABLE>
<P>•&nbsp; match() – 检查一个字符串是否匹配一个正则表达式。 </P>
<P align=left>•&nbsp; substring() – 返回字符串的一个子串。传入参数是起始位置和结束位置。 </P>
<P align=left>•&nbsp; replace() – 用来查找匹配一个正则表达式的字符串，然后使用新字符串代替匹配的字符串。 </P>
<P align=left>•&nbsp; search() – 执行一个正则表达式匹配查找。如果查找成功，返回字符串中匹配的索引值。否则返回 -1 。 </P>
<P align=left>•&nbsp; slice() – 提取字符串的一部分，并返回一个新字符串。 </P>
<P align=left>•&nbsp; split() – 通过将字符串划分成子串，将一个字符串做成一个字符串数组。 </P>
<P align=left>•&nbsp; length() – 返回字符串的长度，所谓字符串的长度是指其包含的字符的个数。 </P>
<P align=left>•&nbsp; toLowerCase() – 将整个字符串转成小写字母。 </P>
<P align=left>•&nbsp; toUpperCase() – 将整个字符串转成大写字母。 </P>
<P align=left>注意： concat 、 match 、 replace 和 search 函数是在 JavaScript 1.2 中加入的。所有其它函数在 JavaScript 1.0 就已经提供了。 </P>
<P align=left>下面让我们看一下如何在 JavaScript 使用这些函数。下面的代码是用到了前面提到的所有函数： </P>
<P align=left>function manipulateString(passedString1, passedString2) { </P>
<P align=left>var concatString; </P>
<P align=left>// The string passed to concat is added to the end of the first string </P>
<P align=left>concatString = passedString1.concat(passedString2); </P>
<P align=left>alert(concatString); </P>
<P align=left>// The following if statement will be true since first word is Tony </P>
<P align=left>if (concatString.charAt(3) == "y") { </P>
<P align=left>alert("Character found!"); </P>
<P align=left>} </P>
<P align=left>// The last position of the letter n is 10 </P>
<P align=left>alert("The last index of n is: " + concatString.lastIndexOf("n")); </P>
<P align=left>// A regular expression is used to locate and replace the substring </P>
<P align=left>var newString = concatString.replace(/Tony/gi,"General"); </P>
<P align=left>// The following yields Please salute General Patton </P>
<P align=left>alert("Please salute " + newString); </P>
<P align=left>// The match function returns an array containing all matches found </P>
<P align=left>matchArray = concatString.match(/Tony/gi); </P>
<P align=left>for (var i=0; i&lt;matchArray.length;i++) { </P>
<P align=left>alert("Match found: " + matchArray[i]); </P>
<P align=left>} </P>
<P align=left>// Determine if the regular expression is found, a –1 indicates no </P>
<P align=left>if (newString.search(/Tony/) == -1) { </P>
<P align=left>alert("String not found"); </P>
<P align=left>} else { </P>
<P align=left>alert("String found."); </P>
<P align=left>} </P>
<P align=left>// Extract a portion of the string and store it in a new variable </P>
<P align=left>var sliceString = newString.slice(newString.indexOf("l")+2,newString.length); </P>
<P align=left>alert(sliceString); </P>
<P align=left>// The split function creates a new array containing each value separated by a space </P>
<P align=left>stringArray = concatString.split(" "); </P>
<P align=left>for (var i=0; i&lt;stringArray.length;i++) { </P>
<P align=left>alert(stringArray[i]; </P>
<P align=left>} </P>
<P align=left>alert(newString.toUpperCase()); </P>
<P align=left>alert(newString.toLowerCase()); </P>
<P align=left>} </P>
<P align=left>下面是执行上面的代码得到的结果： </P>
<P align=left>Tony Patton <BR>Character Found! <BR>The last index of n is: 10 <BR>Match found: Tony <BR>Please salute General Patton <BR>String not found <BR>Patton <BR>Tony <BR>Patton <BR>GENERAL PATTON <BR>general patton </P>
<P align=left>示例代码把所有这些提到的函数都用到了。 </P>
<P align=left><STRONG>特殊字符 </STRONG><STRONG></STRONG></P>
<P align=left>除了这些函数之外，还有很多的特殊字符可以用来表示关键的效果。这些特殊字符包括： </P>
<P align=left>•&nbsp; \t – 跳格键 </P>
<P align=left>•&nbsp; \b – 退格 / 删除 </P>
<P align=left>•&nbsp; \r – 回车 </P>
<P align=left>•&nbsp; \n – 换行 </P>
<P align=left>•&nbsp; \f – 换页 </P>
<P align=left>特殊字符最常见的用途就是格式化输出。例如，你可能需要在输出中插入一个换行来正确地显示一个值。而且，在换行时也需要回车。在一些平台上，“ \n ”已经足够产生换行效果了，而在一些机器上要正确地显示一个换行则需要“ \r\n ”。下面的例子显示了在一个多行窗口上显示的特殊字符： </P>
<P align=left>var output = null; <BR>output = "Special Characters"; <BR>output += "\n"; <BR>output += "==============="; <BR>output += "\n"; <BR>output += "\\t - tab"; <BR>output += "\n"; <BR>output += "\\b - backspace/delete"; <BR>output += "\n"; <BR>output += "\\r - carriage return"; <BR>output += "\n"; <BR>output += "\\n - newline"; <BR>output += "\n"; <BR>output += "\\f - form feed"; <BR>output += "\n"; <BR>alert(output); <BR></P>
<P align=left>前面的例子使用加号来连接字符串，而没有使用 concat 函数。原因很简单，对于 concat 函数来说，每一个操作都需要一个新的变量；反之，我们这里用的这种方法则简单地扩展了原有的值，而不需要新的变量。而且，示例中使用换码符来正确地显示特殊字符。系统将一个反斜线当作一个信号，认为它后面会跟一个特殊字符，但是连着两个反斜线则抵消这种操作。输出中的每个字符都通过 newline 特殊字符被显示在新的一行。 </P>
<P align=left><STRONG>添加到工具箱中 </STRONG><STRONG></STRONG></P>
<P align=left>特殊字符和函数可以与其它 JavaScript 技巧结合起来解决很多问题。其中一种情况是用来进行 JavaScript 客户端表单验证，这篇文章中提出的方法可以简单地用来实现表单验证。 </P>
<P align=left>下面的代码将在一个表单被提交时调用。要提交的表单包含三个域：名称、地址和邮政编码。为了实现起来比较简单，我们只验证每个域都不能为空，并且邮政编码必须是数字。下面的 JavaScript 代码完成这一功能： </P>
<P align=left>function validation() { </P>
<P align=left>var doc = document.forms[0]; </P>
<P align=left>var msg = ""; </P>
<P align=left>if (doc.Name.value == "") { </P>
<P align=left>msg += "- Name is missing\n"; </P>
<P align=left>} </P>
<P align=left>if (doc.Address.value == "") { </P>
<P align=left>msg += "- Address is missing\n"; </P>
<P align=left>} </P>
<P align=left>if (doc.ZipCode.value == "") { </P>
<P align=left>msg += "- Zip code is missing\n"; </P>
<P align=left>} </P>
<P align=left>var zip = new String(doc.ZipCode.value); </P>
<P align=left>if (zip.search(/^[0-9][0-9][0-9][0-9][0-9]$/)==-1) { </P>
<P align=left>msg += "- Enter valid Zip code"; </P>
<P align=left>} </P>
<P align=left>if (msg == "") { </P>
<P align=left>doc.submit; </P>
<P align=left>} else { </P>
<P align=left>msg = "Please correct the following validation errors and re-submit:\n\n" + msg; </P>
<P align=left>alert(msg); </P>
<P align=left>} </P>
<P align=left>} </P>
<P align=left>在用户提交表单时，这个函数就会被调用。对函数的调用是在一个 HTML 按钮的 onSubmit 事件中实现的。 </P>
<P align=left>&lt;input type="button" type="submit" value="submit" onClick="validation()"&gt; </P>
<P align=left>验证函数检查每个域是否为空。如果发现了一个空值，那么就会在验证消息变量 msg 后面添加一个出错消息。此外，还使用了一个正则表达式来验证邮政编码域的格式。在这里，我们只接受五位数的美国地区邮政编码。如果发现有任何错误（即 msg 变量不为空），那么程序就会显示一个错误消息；否则的话，程序就会提交表单。 </P>
<P align=left><STRONG>一门强大的语言 </STRONG><STRONG></STRONG></P>
<P>JavaScript 已经发展成熟为一种功能完备的语言，能够用来构建强大的应用程序。它是对具有非连接性天性的 Web 界面的一个完美的补充，能够在不与 Web 服务器交互的情况下完成很多客户端操作。 </P><BR></TD></TR></TBODY></P></TABLE><img src ="http://www.blogjava.net/pdw2009/aggbug/32155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2006-02-23 17:54 <a href="http://www.blogjava.net/pdw2009/archive/2006/02/23/32155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>