﻿<?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-willpower88-随笔分类-JS$AJAX</title><link>http://www.blogjava.net/willpower88/category/19288.html</link><description>对JAVA有点理解了……</description><language>zh-cn</language><lastBuildDate>Thu, 26 Apr 2012 20:50:00 GMT</lastBuildDate><pubDate>Thu, 26 Apr 2012 20:50:00 GMT</pubDate><ttl>60</ttl><item><title>利用js获取鼠标点击坐标</title><link>http://www.blogjava.net/willpower88/archive/2012/04/26/376703.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Thu, 26 Apr 2012 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2012/04/26/376703.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/376703.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2012/04/26/376703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/376703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/376703.html</trackback:ping><description><![CDATA[代码如下：（<span style="background-color: #ffff99;">说明:在车东代码的基础上加了ie和firefox兼容部分及html）</span><br />测了几款手机：<br />小米：： 自带浏览器：<span style="background-color: #00ff00;">支持</span>&nbsp;&nbsp; <br />iphone4s：： safari：<span style="background-color: #ff0000;">不支持</span>&nbsp; QQ浏览器：<span style="background-color: #ff0000;">不支持</span> UC8.3.1：<span style="background-color: #ff0000;">不支持</span><br />NOKIA5238：：自带浏览器：<span style="background-color: #00ff00;">支持</span> UC8.3：<span style="background-color: #ff0000;">不支持</span><br /><br /><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">&lt;?</span><span style="color: #000000; ">xml&nbsp;version</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;encoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">?&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;!</span><span style="color: #000000; ">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">-//WAPFORUM//DTD&nbsp;XHTML&nbsp;Mobile&nbsp;1.0//EN</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://www.wapforum.org/DTD/xhtml-mobile10.dtd</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">html&nbsp;xmlns</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://www.w3.org/1999/xhtml</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">head</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">script&nbsp;defer&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; ">&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 />document.onclick&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;clickStat;<br /></span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;clickStat()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;创建空html标签</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;e</span><span style="color: #000000; ">=</span><span style="color: #000000; ">arguments[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">||</span><span style="color: #000000; ">window.event;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;image</span><span style="color: #000000; ">=</span><span style="color: #000000; ">document.createElement(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">img</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">image.alt="abc";</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;image.height</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;image.width</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">e.clientX;<br />&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">e.clientY;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">记录点击坐标</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;image.src</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://localhost:8080/r?width=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;screen.width&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&amp;x=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;x&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&amp;y=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;y;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">向服务器发送数据</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;document.body.insertBefore(image);<br />&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 />}<br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">script</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">head</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">body</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />测试abc<br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">body</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">html</span><span style="color: #000000; ">&gt;</span></div></div><img src ="http://www.blogjava.net/willpower88/aggbug/376703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2012-04-26 17:01 <a href="http://www.blogjava.net/willpower88/archive/2012/04/26/376703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用JS正则收藏</title><link>http://www.blogjava.net/willpower88/archive/2009/10/14/298151.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Wed, 14 Oct 2009 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2009/10/14/298151.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/298151.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2009/10/14/298151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/298151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/298151.html</trackback:ping><description><![CDATA[<a href="http://redtreelchao.bloghome.cn/posts/#78402">javascript</a>
/meCall&nbsp;<span class="postDate">发表于2007-09-26, 13:00</span>
<div class="artcontent">
<div id="article_main">
<p>匹配中文字符的正则表达式： [u4e00-u9fa5]<br />
评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</p>
<p>匹配双字节字符(包括汉字在内)：[^x00-xff]<br />
评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
<p>匹配空白行的正则表达式：ns*r<br />
评注：可以用来删除空白行</p>
<p>匹配HTML标记的正则表达式：&lt;(S*?)[^&gt;]*&gt;.*?|&lt;.*? /&gt;<br />
评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</p>
<p>匹配首尾空白字符的正则表达式：^s*|s*$<br />
评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式</p>
<p>匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*<br />
评注：表单验证时很实用</p>
<p>匹配网址URL的正则表达式：[a-zA-z]+://[^s]*<br />
评注：网上流传的版本功能很有限，上面这个基本可以满足需求</p>
<p>匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />
评注：表单验证时很实用</p>
<p>匹配国内电话号码：d{3}-d{8}|d{4}-d{7}<br />
评注：匹配形式如 <span class="skype_tb_injection" id="__skype_highlight_id"><span class="skype_tb_injection_left" id="__skype_highlight_id_left"><span class="skype_tb_injection_left_img" id="__skype_highlight_id_left_adge"><img class="skype_tb_img_adge" src="chrome://skype_ff_toolbar_win/content/cb_transparent_l.gif" border="0" height="11"  alt="" /></span><span class="skype_tb_injection_left_img" id="__skype_highlight_id_left_img"><img class="skype_tb_img_flag" src="chrome://skype_ff_toolbar_win/content/famfamfam/cn.gif" name="skype_tb_img_f0" border="0"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_arrow" src="chrome://skype_ff_toolbar_win/content/arrow.gif" name="skype_tb_img_a0" border="0"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /></span></span><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><span class="skype_tb_injection_right" id="__skype_highlight_id_right"><span class="skype_tb_innerText" id="__skype_highlight_id_innerText"><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" />0511-4405222</span><span class="skype_tb_injection_left_img" id="__skype_highlight_id_right_adge"><img class="skype_tb_img_adge" src="chrome://skype_ff_toolbar_win/content/cb_transparent_r.gif" border="0" height="11"  alt="" /></span></span></span> 或 <span class="skype_tb_injection" id="__skype_highlight_id"><span class="skype_tb_injection_left" id="__skype_highlight_id_left"><span class="skype_tb_injection_left_img" id="__skype_highlight_id_left_adge"><img class="skype_tb_img_adge" src="chrome://skype_ff_toolbar_win/content/cb_transparent_l.gif" border="0" height="11"  alt="" /></span><span class="skype_tb_injection_left_img" id="__skype_highlight_id_left_img"><img class="skype_tb_img_flag" src="chrome://skype_ff_toolbar_win/content/famfamfam/cn.gif" name="skype_tb_img_f1" border="0"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_arrow" src="chrome://skype_ff_toolbar_win/content/arrow.gif" name="skype_tb_img_a1" border="0"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /></span></span><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><span class="skype_tb_injection_right" id="__skype_highlight_id_right"><span class="skype_tb_innerText" id="__skype_highlight_id_innerText"><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" /><img class="skype_tb_img_space" src="chrome://skype_ff_toolbar_win/content/space.gif" border="0" height="1" width="1"  alt="" />021-87888822</span><span class="skype_tb_injection_left_img" id="__skype_highlight_id_right_adge"><img class="skype_tb_img_adge" src="chrome://skype_ff_toolbar_win/content/cb_transparent_r.gif" border="0" height="11"  alt="" /></span></span></span></p>
<p>匹配腾讯QQ号：[1-9][0-9]{4,}<br />
评注：腾讯QQ号从10000开始</p>
<p>匹配中国邮政编码：[1-9]d{5}(?!d)<br />
评注：中国邮政编码为6位数字</p>
<p>匹配身份证：d{15}|d{18}<br />
评注：中国的身份证为15位或18位</p>
<p>匹配ip地址：d+.d+.d+.d+<br />
评注：提取ip地址时有用</p>
<p>匹配特定数字：<br />
^[1-9]d*$　 　 //匹配正整数<br />
^-[1-9]d*$ 　 //匹配负整数<br />
^-?[1-9]d*$　　 //匹配整数<br />
^[1-9]d*|0$　 //匹配非负整数（正整数 + 0）<br />
^-[1-9]d*|0$　　 //匹配非正整数（负整数 + 0）<br />
^[1-9]d*.d*|0.d*[1-9]d*$　　 //匹配正浮点数<br />
^-([1-9]d*.d*|0.d*[1-9]d*)$　 //匹配负浮点数<br />
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$　 //匹配浮点数<br />
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）<br />
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$　　//匹配非正浮点数（负浮点数 + 0）<br />
评注：处理大量数据时有用，具体应用时注意修正</p>
<p>匹配特定字符串：<br />
^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串<br />
^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串<br />
^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串<br />
^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串<br />
^w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串</p>
<p>在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:</p>
<p>只能输入数字：&#8220;^[0-9]*$&#8221;<br />
只能输入n位的数字：&#8220;^d{n}$&#8221;<br />
只能输入至少n位数字：&#8220;^d{n,}$&#8221;<br />
只能输入m-n位的数字：&#8220;^d{m,n}$&#8221;<br />
只能输入零和非零开头的数字：&#8220;^(0|[1-9][0-9]*)$&#8221;<br />
只能输入有两位小数的正实数：&#8220;^[0-9]+(.[0-9]{2})?$&#8221;<br />
只能输入有1-3位小数的正实数：&#8220;^[0-9]+(.[0-9]{1,3})?$&#8221;<br />
只能输入非零的正整数：&#8220;^+?[1-9][0-9]*$&#8221;<br />
只能输入非零的负整数：&#8220;^-[1-9][0-9]*$&#8221;<br />
只能输入长度为3的字符：&#8220;^.{3}$&#8221;<br />
只能输入由26个英文字母组成的字符串：&#8220;^[A-Za-z]+$&#8221;<br />
只能输入由26个大写英文字母组成的字符串：&#8220;^[A-Z]+$&#8221;<br />
只能输入由26个小写英文字母组成的字符串：&#8220;^[a-z]+$&#8221;<br />
只能输入由数字和26个英文字母组成的字符串：&#8220;^[A-Za-z0-9]+$&#8221;<br />
只能输入由数字、26个英文字母或者下划线组成的字符串：&#8220;^w+$&#8221;<br />
验证用户密码:&#8220;^[a-zA-Z]w{5,17}$&#8221;正确格式为：以字母开头，长度在6-18之间，</p>
<p>只能包含字符、数字和下划线。<br />
验证是否含有^%&amp;&#8217;,;=?$&#8221;等字符：&#8220;[^%&amp;&#8217;,;=?$x22]+&#8221;<br />
只能输入汉字：&#8220;^[u4e00-u9fa5],{0,}$&#8221;<br />
验证Email地址：&#8220;^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$&#8221;<br />
验证InternetURL：&#8220;^http://([w-]+.)+[w-]+(/[w-./?%&amp;=]*)?$&#8221;<br />
验证电话号码：&#8220;^((d{3,4})|d{3,4}-)?d{7,8}$&#8221;</p>
<p>正确格式为：&#8220;XXXX-XXXXXXX&#8221;，&#8220;XXXX-XXXXXXXX&#8221;，&#8220;XXX-XXXXXXX&#8221;，</p>
<p>&#8220;XXX-XXXXXXXX&#8221;，&#8220;XXXXXXX&#8221;，&#8220;XXXXXXXX&#8221;。<br />
验证身份证号（15位或18位数字）：&#8220;^d{15}|d{}18$&#8221;<br />
验证一年的12个月：&#8220;^(0?[1-9]|1[0-2])$&#8221;正确格式为：&#8220;01&#8221;-&#8220;09&#8221;和&#8220;1&#8221;&#8220;12&#8221;<br />
验证一个月的31天：&#8220;^((0?[1-9])|((1|2)[0-9])|30|31)$&#8221;</p>
<p>正确格式为：&#8220;01&#8221;&#8220;09&#8221;和&#8220;1&#8221;&#8220;31&#8221;。</p>
<p>匹配中文字符的正则表达式： [u4e00-u9fa5]<br />
匹配双字节字符(包括汉字在内)：[^x00-xff]<br />
匹配空行的正则表达式：n[s| ]*r<br />
匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;!--1--&gt;|&lt;(.*) /&gt;/<br />
匹配首尾空格的正则表达式：(^s*)|(s*$)<br />
匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*<br />
匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&amp;=]*)?</p>
<p>(1)应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）<br />
String.prototype.len=function(){return this.replace([^x00-xff]/g,&#8221;aa&#8221;).length;}</p>
(2)应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现<br />
String.prototype.trim = function()<br />
{<br />
return this.replace(/(^s*)|(s*$)/g, &#8220;&#8221;);<br />
}<br />
(3)应用：利用正则表达式分解和转换IP地址<br />
function IP2V(ip) //IP地址转换成对应数值<br />
{<br />
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式<br />
if(re.test(ip))<br />
{<br />
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1<br />
}<br />
else<br />
{<br />
throw new Error(&#8221;Not a valid IP address!&#8221;)<br />
}<br />
}<br />
(4)应用：从URL地址中提取文件名的javascript程序<br />
s=&#8221;http://www.9499.net/page1.htm&#8221;;<br />
s=s.replace(/(.*/){0,}([^.]+).*/ig,&#8221;$2&#8243;) ; //Page1.htm<br />
(5)应用：利用正则表达式限制网页表单里的文本框输入内容<br />
用正则表达式限制只能输入中文：onkeyup=&#8221;value=&#8221;/blog/value.replace(/[&#8221;^u4E00-u9FA5]/g, '&#8217;) &#8221; onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^u4E00-u9FA5]/g,'&#8217;))&#8221;<br />
用正则表达式限制只能输入全角字符： onkeyup=&#8221;value=&#8221;/blog/value.replace(/[&#8221;^uFF00-uFFFF]/g,'&#8217;) &#8221; onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^uFF00-uFFFF]/g,'&#8217;))&#8221;<br />
用正则表达式限制只能输入数字：onkeyup=&#8221;value=&#8221;/blog/value.replace(/[&#8221;^d]/g,'&#8217;) &#8220;onbeforepaste= &#8220;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^d]/g,'&#8217;))&#8221;<br />
用正则表达式限制只能输入数字和英文：onkeyup=&#8221;value=&#8221;/blog/value.replace(/[W]/g,&#8221;&#8216;&#8217;) &#8220;onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^d]/</div>
</div>
<img src ="http://www.blogjava.net/willpower88/aggbug/298151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2009-10-14 09:59 <a href="http://www.blogjava.net/willpower88/archive/2009/10/14/298151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证码刷新在firefox中的问题</title><link>http://www.blogjava.net/willpower88/archive/2009/02/17/255119.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Tue, 17 Feb 2009 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2009/02/17/255119.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/255119.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2009/02/17/255119.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/255119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/255119.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 问题：在firefox中相同URL不去访问，所以在刷新验证码时就出问题了，不去访问servlet。<br />
&nbsp;&nbsp;&nbsp; 解决办法如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_18_129_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_129_Open_Text.style.display='none'; Codehighlighter1_18_129_Closed_Image.style.display='inline'; Codehighlighter1_18_129_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_18_129_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_18_129_Closed_Text.style.display='none'; Codehighlighter1_18_129_Open_Image.style.display='inline'; Codehighlighter1_18_129_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;refresh()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_18_129_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_18_129_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">重新获取验证码图片的src属性</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">imageField</span><span style="color: #000000">"</span><span style="color: #000000">).src</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">servlet</span><span style="color: #000000">/</span><span style="color: #000000">MyGraphics'</span><span style="color: #000000">+</span><span style="color: #000000">'</span><span style="color: #000000">?</span><span style="color: #000000">r</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">Math.random();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<span style="color: red">&nbsp;注意："+'?r='+Math.random()"是必须的</span> 
<img src ="http://www.blogjava.net/willpower88/aggbug/255119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2009-02-17 16:04 <a href="http://www.blogjava.net/willpower88/archive/2009/02/17/255119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何跳出页面的Frame框架</title><link>http://www.blogjava.net/willpower88/archive/2008/08/20/223184.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Wed, 20 Aug 2008 03:03:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2008/08/20/223184.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/223184.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2008/08/20/223184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/223184.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/223184.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" class="postTitle2" href="../../zilong/archive/2007/04/04/108415.html"><br />
</a>
</div>
<div class="cnt">
<p>摘自http://www.blogjava.net/zilong/archive/2007/04/04/108415.html<br />
</p>
<p>很多网页都是框架结构的，在很多的情况下会通过按钮点击事件或链接，跳出框架转到其它界面。例如说点击&#8220;注销登录&#8221;返回到登录界面。</p>
<p>一、通过运行脚本跳出框架有以下几种写法：</p>
<p>1.　 &lt;script language = javascript&gt;window.open('Login.aspx','_top')&lt;/script&gt;"</p>
<p>2.&nbsp;　&lt;script language = javascript&gt;window.open('Login.aspx','_parent')&lt;/script&gt;"</p>
<p>3.　&lt;script language = javascript&gt;window.parent.location.href='login.aspx'&lt;/script&gt;</p>
<p>4.&nbsp;&nbsp;&nbsp; Response.Write("&lt;script&gt;window.parent.opener=null;window.top.close();&lt;/script&gt;")</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write("&lt;script&gt;window.open('index.aspx','');&lt;/script&gt;")</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这种方法会先关闭原框架窗口，再重新打开一个新的窗口。这在很多功能界面对浏览器进行了改变设置，而回到登陆界面又用缺省设置的情况下适用。</p>
<p>二、链接跳出框架</p>
<p>这种情况就很简单了，加上<strong><span style="color: red;"> target="_top"</span> </strong>属性就可以了。</p>
</div>
<img src ="http://www.blogjava.net/willpower88/aggbug/223184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2008-08-20 11:03 <a href="http://www.blogjava.net/willpower88/archive/2008/08/20/223184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则表达式</title><link>http://www.blogjava.net/willpower88/archive/2007/04/10/109669.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Tue, 10 Apr 2007 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2007/04/10/109669.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/109669.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2007/04/10/109669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/109669.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/109669.html</trackback:ping><description><![CDATA[只能输入汉字:<br>&nbsp;&lt;input&nbsp;onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,')"&nbsp;onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,'))"&gt;<br>&nbsp;或者<br>&nbsp;function&nbsp;onlychinese()&nbsp;<br>&nbsp;{<br>&nbsp;if&nbsp;((window.event.keyCode&nbsp;&gt;=32)&nbsp;&amp;&amp;&nbsp;(window.event.keyCode&nbsp;&lt;=&nbsp;126))&nbsp;<br>&nbsp;{<br>&nbsp;window.event.keyCode&nbsp;=&nbsp;0&nbsp;;<br>&nbsp;}<br>&nbsp;}&nbsp;<br>&nbsp;只可输入数字和字母<br>&nbsp;&lt;input&nbsp;onkeyup="value=value.replace(/[\W]/g,')&nbsp;"&nbsp;onbeforepaste="clipboardData<br>&nbsp;.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'))"&gt;
<p>&#160;</p>
<p>&nbsp;只能输入数字<br>&nbsp;function&nbsp;txtSort_check()<br>&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;event.keyCode&gt;=48&amp;&amp;event.keyCode&lt;=57&nbsp;||&nbsp;event.keyCode&gt;=96&amp;&amp;event.keyCode&lt;=105&nbsp;||&nbsp;event.keyCode==8&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;event.keyCode==37&nbsp;||&nbsp;event.keyCode==39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;}</p>
<p>&nbsp;&nbsp;一些常用的正则表达式<br>&nbsp;2006-1-13&nbsp;16:25:28<br>&nbsp;"^\d+＄"　　//非负整数（正整数&nbsp;+&nbsp;0）&nbsp;<br>&nbsp;"^[0-9]*[1-9][0-9]*＄"　　//正整数&nbsp;<br>&nbsp;"^((-\d+)|(0+))＄"　　//非正整数（负整数&nbsp;+&nbsp;0）&nbsp;<br>&nbsp;"^-[0-9]*[1-9][0-9]*＄"　　//负整数&nbsp;<br>&nbsp;"^-?\d+＄"　　　　//整数&nbsp;<br>&nbsp;"^\d+(\.\d+)?＄"　　//非负浮点数（正浮点数&nbsp;+&nbsp;0）&nbsp;<br>&nbsp;"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))＄"　　//正浮点数&nbsp;<br>&nbsp;"^((-\d+(\.\d+)?)|(0+(\.0+)?))＄"　　//非正浮点数（负浮点数&nbsp;+&nbsp;0）&nbsp;<br>&nbsp;"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))＄"　　//负浮点数&nbsp;<br>&nbsp;"^(-?\d+)(\.\d+)?＄"　　//浮点数&nbsp;<br>&nbsp;"^[A-Za-z]+＄"　　//由26个英文字母组成的字符串&nbsp;<br>&nbsp;"^[A-Z]+＄"　　//由26个英文字母的大写组成的字符串&nbsp;<br>&nbsp;"^[a-z]+＄"　　//由26个英文字母的小写组成的字符串&nbsp;<br>&nbsp;"^[A-Za-z0-9]+＄"　　//由数字和26个英文字母组成的字符串&nbsp;<br>&nbsp;"^\w+＄"　　//由数字、26个英文字母或者下划线组成的字符串&nbsp;<br>&nbsp;"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+＄"　　　　//email地址&nbsp;<br>&nbsp;"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?＄"　　//url<br>&nbsp;/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))＄/&nbsp;//&nbsp;年-月-日<br>&nbsp;/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})＄/&nbsp;//&nbsp;月/日/年<br>&nbsp;"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)＄"&nbsp;//Emil<br>&nbsp;"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"&nbsp;//电话号码<br>&nbsp;"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])＄"&nbsp;//IP地址</p>
<p>&nbsp;</p>
<p>&nbsp;匹配中文字符的正则表达式：&nbsp;[\u4e00-\u9fa5]<br>&nbsp;匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br>&nbsp;匹配空行的正则表达式：\n[\s|&nbsp;]*\r<br>&nbsp;匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*)&nbsp;\/&gt;/<br>&nbsp;匹配首尾空格的正则表达式：(^\s*)|(\s*＄)<br>&nbsp;匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br>&nbsp;匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?＄<br>&nbsp;匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}＄<br>&nbsp;匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<br>&nbsp;匹配腾讯QQ号：^[1-9]*[1-9][0-9]*＄</p>
<p>&nbsp;<br>&nbsp;下表是元字符及其在正则表达式上下文中的行为的一个完整列表：&nbsp;</p>
<p>&nbsp;\&nbsp;将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。</p>
<p>&nbsp;^&nbsp;匹配输入字符串的开始位置。如果设置了&nbsp;RegExp&nbsp;对象的Multiline&nbsp;属性，^&nbsp;也匹配&nbsp;&#8217;\n&#8217;&nbsp;或&nbsp;&#8217;\r&#8217;&nbsp;之后的位置。&nbsp;</p>
<p>&nbsp;＄&nbsp;匹配输入字符串的结束位置。如果设置了&nbsp;RegExp&nbsp;对象的Multiline&nbsp;属性，＄&nbsp;也匹配&nbsp;&#8217;\n&#8217;&nbsp;或&nbsp;&#8217;\r&#8217;&nbsp;之前的位置。&nbsp;</p>
<p>&nbsp;*&nbsp;匹配前面的子表达式零次或多次。&nbsp;</p>
<p>&nbsp;+&nbsp;匹配前面的子表达式一次或多次。+&nbsp;等价于&nbsp;{1,}。&nbsp;</p>
<p>&nbsp;?&nbsp;匹配前面的子表达式零次或一次。?&nbsp;等价于&nbsp;{0,1}。&nbsp;</p>
<p>&nbsp;{n}&nbsp;n&nbsp;是一个非负整数，匹配确定的n&nbsp;次。</p>
<p>&nbsp;{n,}&nbsp;n&nbsp;是一个非负整数，至少匹配n&nbsp;次。&nbsp;</p>
<p>&nbsp;{n,m}&nbsp;m&nbsp;和&nbsp;n&nbsp;均为非负整数，其中n&nbsp;&lt;=&nbsp;m。最少匹配&nbsp;n&nbsp;次且最多匹配&nbsp;m&nbsp;次。在逗号和两个数之间不能有空格。</p>
<p>&nbsp;?&nbsp;当该字符紧跟在任何一个其他限制符&nbsp;(*,&nbsp;+,&nbsp;?,&nbsp;{n},&nbsp;{n,},&nbsp;{n,m})&nbsp;后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。&nbsp;</p>
<p>&nbsp;.&nbsp;匹配除&nbsp;"\n"&nbsp;之外的任何单个字符。要匹配包括&nbsp;&#8217;\n&#8217;&nbsp;在内的任何字符，请使用象&nbsp;&#8217;[.\n]&#8217;&nbsp;的模式。&nbsp;<br>&nbsp;(pattern)&nbsp;匹配pattern&nbsp;并获取这一匹配。&nbsp;</p>
<p>&nbsp;(?:pattern)&nbsp;匹配pattern&nbsp;但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。&nbsp;</p>
<p>&nbsp;(?=pattern)&nbsp;正向预查，在任何匹配&nbsp;pattern&nbsp;的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。&nbsp;</p>
<p>&nbsp;(?!pattern)&nbsp;负向预查，与(?=pattern)作用相反&nbsp;</p>
<p>&nbsp;x|y&nbsp;匹配&nbsp;x&nbsp;或&nbsp;y。&nbsp;</p>
<p>&nbsp;[xyz]&nbsp;字符集合。&nbsp;</p>
<p>&nbsp;[^xyz]&nbsp;负值字符集合。&nbsp;</p>
<p>&nbsp;[a-z]&nbsp;字符范围，匹配指定范围内的任意字符。&nbsp;</p>
<p>&nbsp;[^a-z]&nbsp;负值字符范围，匹配任何不在指定范围内的任意字符。&nbsp;</p>
<p>&nbsp;\b&nbsp;匹配一个单词边界，也就是指单词和空格间的位置。</p>
<p>&nbsp;\B&nbsp;匹配非单词边界。&nbsp;</p>
<p>&nbsp;\cx&nbsp;匹配由x指明的控制字符。&nbsp;</p>
<p>&nbsp;\d&nbsp;匹配一个数字字符。等价于&nbsp;[0-9]。&nbsp;</p>
<p>&nbsp;\D&nbsp;匹配一个非数字字符。等价于&nbsp;[^0-9]。&nbsp;</p>
<p>&nbsp;\f&nbsp;匹配一个换页符。等价于&nbsp;\x0c&nbsp;和&nbsp;\cL。&nbsp;</p>
<p>&nbsp;\n&nbsp;匹配一个换行符。等价于&nbsp;\x0a&nbsp;和&nbsp;\cJ。&nbsp;</p>
<p>&nbsp;\r&nbsp;匹配一个回车符。等价于&nbsp;\x0d&nbsp;和&nbsp;\cM。&nbsp;</p>
<p>&nbsp;\s&nbsp;匹配任何空白字符，包括空格、制表符、换页符等等。等价于[&nbsp;\f\n\r\t\v]。&nbsp;</p>
<p>&nbsp;\S&nbsp;匹配任何非空白字符。等价于&nbsp;[^&nbsp;\f\n\r\t\v]。&nbsp;</p>
<p>&nbsp;\t&nbsp;匹配一个制表符。等价于&nbsp;\x09&nbsp;和&nbsp;\cI。&nbsp;</p>
<p>&nbsp;\v&nbsp;匹配一个垂直制表符。等价于&nbsp;\x0b&nbsp;和&nbsp;\cK。&nbsp;</p>
<p>&nbsp;\w&nbsp;匹配包括下划线的任何单词字符。等价于&#8217;[A-Za-z0-9_]&#8217;。&nbsp;</p>
<p>&nbsp;\W&nbsp;匹配任何非单词字符。等价于&nbsp;&#8217;[^A-Za-z0-9_]&#8217;。&nbsp;</p>
<p>&nbsp;\xn&nbsp;匹配&nbsp;n，其中&nbsp;n&nbsp;为十六进制转义值。十六进制转义值必须为确定的两个数字长。</p>
<p>&nbsp;\num&nbsp;匹配&nbsp;num，其中num是一个正整数。对所获取的匹配的引用。&nbsp;</p>
<p>&nbsp;\n&nbsp;标识一个八进制转义值或一个后向引用。如果&nbsp;\n&nbsp;之前至少&nbsp;n&nbsp;个获取的子表达式，则&nbsp;n&nbsp;为后向引用。否则，如果&nbsp;n&nbsp;为八进制数字&nbsp;(0-7)，则&nbsp;n&nbsp;为一个八进制转义值。&nbsp;</p>
<p>&nbsp;\nm&nbsp;标识一个八进制转义值或一个后向引用。如果&nbsp;\nm&nbsp;之前至少有is&nbsp;preceded&nbsp;by&nbsp;at&nbsp;least&nbsp;nm&nbsp;个获取得子表达式，则&nbsp;nm&nbsp;为后向引用。如果&nbsp;\nm&nbsp;之前至少有&nbsp;n&nbsp;个获取，则&nbsp;n&nbsp;为一个后跟文字&nbsp;m&nbsp;的后向引用。如果前面的条件都不满足，若&nbsp;n&nbsp;和&nbsp;m&nbsp;均为八进制数字&nbsp;(0-7)，则&nbsp;\nm&nbsp;将匹配八进制转义值&nbsp;nm。&nbsp;</p>
<p>&nbsp;\nml&nbsp;如果&nbsp;n&nbsp;为八进制数字&nbsp;(0-3)，且&nbsp;m&nbsp;和&nbsp;l&nbsp;均为八进制数字&nbsp;(0-7)，则匹配八进制转义值&nbsp;nml。&nbsp;</p>
<p>&nbsp;\un&nbsp;匹配&nbsp;n，其中&nbsp;n&nbsp;是一个用四个十六进制数字表示的Unicode字符。&nbsp;</p>
<p>&nbsp;<br>&nbsp;匹配中文字符的正则表达式：&nbsp;[u4e00-u9fa5]</p>
<p>&nbsp;匹配双字节字符(包括汉字在内)：[^x00-xff]</p>
<p>&nbsp;应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
<p>&nbsp;String.prototype.len=function(){return&nbsp;this.replace([^x00-xff]/g,"aa").length;}</p>
<p>&nbsp;匹配空行的正则表达式：n[s|&nbsp;]*r</p>
<p>&nbsp;匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*|&lt;(.*)&nbsp;/&gt;/&nbsp;</p>
<p>&nbsp;匹配首尾空格的正则表达式：(^s*)|(s*＄)</p>
<p>&nbsp;应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：</p>
<p>&nbsp;String.prototype.trim&nbsp;=&nbsp;function()<br>&nbsp;{<br>&nbsp;return&nbsp;this.replace(/(^s*)|(s*＄)/g,&nbsp;"");<br>&nbsp;}</p>
<p>&nbsp;利用正则表达式分解和转换IP地址：</p>
<p>&nbsp;下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的Javascript程序：</p>
<p>&nbsp;function&nbsp;IP2V(ip)<br>&nbsp;{<br>&nbsp;re=/(d+).(d+).(d+).(d+)/g&nbsp;//匹配IP地址的正则表达式<br>&nbsp;if(re.test(ip))<br>&nbsp;{<br>&nbsp;return&nbsp;RegExp.＄1*Math.pow(255,3))+RegExp.＄2*Math.pow(255,2))+RegExp.＄3*255+RegExp.＄4*1<br>&nbsp;}<br>&nbsp;else<br>&nbsp;{<br>&nbsp;throw&nbsp;new&nbsp;Error("Not&nbsp;a&nbsp;valid&nbsp;IP&nbsp;address!")<br>&nbsp;}<br>&nbsp;}</p>
<p>&nbsp;不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</p>
<p>&nbsp;var&nbsp;ip="10.100.20.168"<br>&nbsp;ip=ip.split(".")<br>&nbsp;alert("IP值是："+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))</p>
<p>&nbsp;匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p>
<p>&nbsp;匹配网址URL的正则表达式：http://(&nbsp;[w-]+.)+[w-]+(/[w-&nbsp;./?%&amp;=]*)?</p>
<p>&nbsp;利用正则表达式去除字串中重复的字符的算法程序：</p>
<p>&nbsp;var&nbsp;s="abacabefgeeii"<br>&nbsp;var&nbsp;s1=s.replace(/(.).*1/g,"＄1")<br>&nbsp;var&nbsp;re=new&nbsp;RegExp("["+s1+"]","g")<br>&nbsp;var&nbsp;s2=s.replace(re,"")&nbsp;<br>&nbsp;alert(s1+s2)&nbsp;//结果为：abcefgi</p>
<p>&nbsp;我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</p>
<p>&nbsp;得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</p>
<p>&nbsp;s="http://www.9499.net/page1.htm"&nbsp;<br>&nbsp;s=s.replace(/(.*/){0,}([^.]+).*/ig,"＄2")<br>&nbsp;alert(s)</p>
<p>&nbsp;利用正则表达式限制网页表单里的文本框输入内容：</p>
<p>&nbsp;用正则表达式限制只能输入中文：onkeyup="value="/value.replace(/["^u4E00-u9FA5]/g,')"&nbsp;onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,'))"</p>
<p>&nbsp;用正则表达式限制只能输入全角字符：&nbsp;onkeyup="value="/value.replace(/["^uFF00-uFFFF]/g,')"&nbsp;onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,'))"</p>
<p>&nbsp;用正则表达式限制只能输入数字：onkeyup="value="/value.replace(/["^d]/g,')&nbsp;"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'))"</p>
<p>&nbsp;用正则表达式限制只能输入数字和英文：onkeyup="value="/value.replace(/[W]/g,"')&nbsp;"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'))"</p>
<img src ="http://www.blogjava.net/willpower88/aggbug/109669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2007-04-10 16:49 <a href="http://www.blogjava.net/willpower88/archive/2007/04/10/109669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS在弹出窗口中获得或设置主窗口的任何值</title><link>http://www.blogjava.net/willpower88/archive/2007/01/17/94434.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Wed, 17 Jan 2007 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2007/01/17/94434.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/94434.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2007/01/17/94434.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/94434.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/94434.html</trackback:ping><description><![CDATA[
		<p>在弹出窗口中获得或设置主窗口的任何值：<br />打开弹出窗口时用：showModalDialog(url, window, feathers)<br />在弹出窗口中使用 window.dialogArguments 对象（即主窗口传递过来的 window 对象集），即可以获得或者设置主窗口的值。</p>
		<p>具体实例：</p>
		<p>window.showModalDialog('areaAdd.jsp",window,'dialogWidth:245px;dialogHeight:210px;status:no;help:no;scroll:no;');</p>
		<p>其中window参数如果是需要页面间传值就必须要，否则可为空。父子页面之间通讯也需要该参数。主页面的iframe名称为areaIframe，子页面名称为areaAdd，父页面通知子页面刷新用：areasIframe.location.href='areaIframe.jsp'。子页面通知父页面刷新使用：window.dialogArguments.areasIframe.areasReload();其中areasReload()是子页面中的javascript方法</p>
		<p>注意 iframe 的属性必须使用前缀 document.all 访问，例如 document.all.iframeId.marginWidth。<br /></p>
<img src ="http://www.blogjava.net/willpower88/aggbug/94434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2007-01-17 15:37 <a href="http://www.blogjava.net/willpower88/archive/2007/01/17/94434.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>