﻿<?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-Java之旅-文章分类-JavaScript</title><link>http://www.blogjava.net/hoocoral/category/18220.html</link><description>Record my Java-learning progress.</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 02:41:48 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 02:41:48 GMT</pubDate><ttl>60</ttl><item><title>[原创]Struts+Hibernate+Ajax简单例子</title><link>http://www.blogjava.net/hoocoral/articles/202035.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Wed, 21 May 2008 13:48:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/202035.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/202035.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/202035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/202035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/202035.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近几天，自己在研究Struts、Hibernate和Ajax的整合，对于Hibernate和Ajax对我来说还是比较新鲜的技术，也颇有兴趣，在这里把步骤简单整理一下：环境：JDK 1.5Eclipse 3.2MyEclipse 5.0 M1Tomcat 5.5.23MySQL 5.0.191. 在MySQL中建表：Create&nbsp;Database&...&nbsp;&nbsp;<a href='http://www.blogjava.net/hoocoral/articles/202035.html'>阅读全文</a><img src ="http://www.blogjava.net/hoocoral/aggbug/202035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2008-05-21 21:48 <a href="http://www.blogjava.net/hoocoral/articles/202035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>经典正则表达式</title><link>http://www.blogjava.net/hoocoral/articles/87701.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Thu, 14 Dec 2006 06:33:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/87701.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/87701.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/87701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/87701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/87701.html</trackback:ping><description><![CDATA[
		<p>正则表达式用于字符串处理，表单验证等场合，实用高效，但用到时总是不太把握，以致往往要上网查一番。我将一些常用的表达式收藏在这里，作备忘之用。本贴随时会更新。</p>
		<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]</p>
		<p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]</p>
		<p>应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
		<p>String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}</p>
		<p>匹配空行的正则表达式：\n[\s| ]*\r</p>
		<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/ </p>
		<p>匹配首尾空格的正则表达式：(^\s*)|(\s*$)</p>
		<p> </p>
		<p>String.prototype.trim = function()<br />{<br />    return this.replace(/(^\s*)|(\s*$)/g, "");<br />}</p>
		<p>利用正则表达式分解和转换IP地址：</p>
		<p>下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的Javascript程序：</p>
		<p>function IP2V(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("Not a valid IP address!")<br />}<br />}</p>
		<p>不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</p>
		<p>var ip="10.100.20.168"<br />ip=ip.split(".")<br />alert("IP值是："+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))</p>
		<p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p>
		<p>匹配网址URL的正则表达式：<a href="http://([/w-]+/.)+[/w-]+(/[/w"><font color="#000000">http://([\w-]+\.)+[\w-]+(/[\w</font></a>- ./?%&amp;=]*)?</p>
		<p>利用正则表达式去除字串中重复的字符的算法程序：[注：此程序不正确，原因见红色字体]</p>
		<p>var s="abacabefgeeii"<br />var s1=s.replace(/(.).*\1/g,"$1")<br />var re=new RegExp("["+s1+"]","g")<br />var s2=s.replace(re,"") <br />alert(s1+s2)  //结果为：abcefgi</p>
		<p>=============================== <br />如果var s = "abacabefggeeii" <br />结果就不对了，结果为：abeicfgg <br />正则表达式的能力有限</p>
		<p>我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</p>
		<p>得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</p>
		<p>s="<a href="http://www.9499.net/page1.htm"><font color="#000000">http://www.9499.net/page1.htm</font></a>"<br />s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")<br />alert(s)</p>
		<p>利用正则表达式限制网页表单里的文本框输入内容：</p>
		<p>用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'''')" onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\u4E00-\u9FA5]/g,''''))"</p>
		<p>用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'''')" onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\uFF00-\uFFFF]/g,''''))"</p>
		<p>用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^\d]/g,'''') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\d]/g,''''))"</p>
		<p>用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[\W]/g,'''') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\d]/g,''''))"</p>
<img src ="http://www.blogjava.net/hoocoral/aggbug/87701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2006-12-14 14:33 <a href="http://www.blogjava.net/hoocoral/articles/87701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JavaScript实现网页上的浮动广告</title><link>http://www.blogjava.net/hoocoral/articles/86415.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Fri, 08 Dec 2006 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/86415.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/86415.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/86415.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/86415.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/86415.html</trackback:ping><description><![CDATA[漫游于网络之间，你会发觉，因特网不但是信息的海洋，也是广告的海洋。除了普通的Gif Banner、Flash外，浮动广告也是时下网上较为流行的广告形式之一。当你拖动浏览器的滚动条时，这种在页面上浮动的广告，可以跟随屏幕一起移动。尽管这种效果对于广告展示有相当的实用价值，但对浏览你网页的人来讲，这则是个既妨碍阅读，又影响阅读兴趣的东西，因此一定不能滥用。不过，如果你能善用的话，它就能发挥出极大的作用。
<table cellspacing="5" cellpadding="0" align="left" border="0"><tbody><tr><td><!--FLASH 画中画360X300--></td></tr></tbody></table><p>　　要做出浮动式广告的效果并不困难，如果你有JS基础的可以自己写一个，如果连写都懒得写的话，到网上下载一个特效工具，按提示粘贴一下代码就OK。不过，想要真正了解它是怎样做出来的，则需要掌握一些JS知识了。这里向大家介绍一下简单的浮动广告做法。</p><p>　　以下这段代码可放在&lt;body&gt;&lt;/body&gt;之间，其间我加入了一些注释（即“//”后的文字及“&lt;!—”“--&gt;”之间的文字）。<br />　　 &lt;SCRIPT FOR=window EVENT=onload LANGUAGE="JScript"&gt;<br />　　 initAd();//载入页面后，调用函数initAd()<br />　　 &lt;/SCRIPT&gt;<br />　　 &lt;script language="JScript"&gt;<br />　　 &lt;!--<br />　　 function initAd() {<br />　　 document.all.AdLayer.style.posTop = -200;//设置onLoad事件激发以后，广告层相对于固定后的y方向位置<br />　　 document.all.AdLayer.style.visibility = 'visible'//设置层为可见<br />　　 MoveLayer('AdLayer');//调用函数MoveLayer()<br />　　 }<br />　　 function MoveLayer(layerName) {<br />　　 var x = 600;//浮动广告层固定于浏览器的x方向位置<br />　　 var y = 300;//浮动广告层固定于浏览器的y方向位置<br />　　 var diff = (document.body.scrollTop + y - document.all.AdLayer.style.posTop)*.40;<br />　　 var y = document.body.scrollTop + y - diff;<br />　　 eval("document.all." + layerName + ".style.posTop = y");<br />　　 eval("document.all." + layerName + ".style.posLeft = x");//移动广告层<br />　　 setTimeout("MoveLayer('AdLayer');", 20);//设置20毫秒后再调用函数MoveLayer()<br />　　 }<br />　　 //--&gt;<br />　　 &lt;/script&gt;<br />　　 &lt;!--下面为一个ID为AdLayer的层（如ID名不为AdLayer，上面MoveLayer()内的AdLayer也要作相应修改），包括一张带链接的图片--&gt;<br />　　 &lt;div id=AdLayer style='position:absolute; width:61px; height:59px; z-index:20; visibility:hidden;; left: 600px; top: 300px'&gt; <br />　　 &lt;a href="http://www.5dmedia.com/bbs"&gt;&lt;img src='../qqkk2000.gif' border="0" height="60" width="60"&gt;&lt;/a&gt; <br />　　 &lt;/div&gt;</p><p>　　在这里，你可以设置x、y的值来设定所固定层的位置，改变setTimeout("MoveLayer('AdLayer');", 20)中20的值为你希望调用MoveLayer()的时间间隔。还有要注意的是，使用的图片最好为透明背景的gif图，以使图片的背景颜色不至于遮住后面的的内容。</p><p>　　切记，要慎用浮动式广告，考虑使用特效的同时，千万要考虑到浏览者的感觉，不能滥用哦！</p><img src ="http://www.blogjava.net/hoocoral/aggbug/86415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2006-12-08 17:39 <a href="http://www.blogjava.net/hoocoral/articles/86415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>