<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[韩卫东@苏州]]></title>
<link>http://www.haoder.com/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[kevin.han#remai.com(haoder)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>韩卫东@苏州</title> 
	<url>http://www.haoder.com/images/logos.gif</url> 
	<link>http://www.haoder.com/</link> 
	<description>韩卫东@苏州</description> 
</image>

			<item>
			<link>http://www.haoder.com/default.asp?id=26</link>
			<title><![CDATA[介绍一款VC++的漂亮菜单CHSMenu V3.8(有源码)]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[VC++]]></category>
			<pubDate>Wed,13 Aug 2008 10:33:22 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=26</guid>	
		<description><![CDATA[<p>帮助文件在文件里.</p>
<p>&nbsp;</p>
<p><a href="http://haoder.com/attachments/month_0808/o2008813103137.rar"><img style="MARGIN: 0px 2px -4px 0px" alt="" src="http://haoder.com/images/download.gif" border="0" />点击下载此文件</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=25</link>
			<title><![CDATA[微软安全小组公布反制SQL注入的方案]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[技术]]></category>
			<pubDate>Mon,02 Jun 2008 16:21:57 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=25</guid>	
		<description><![CDATA[<p>微软安全隐患研究和防御小组发表文章称已经注意到SQL注入攻击方式发展愈演愈烈,黑客通过SQL数据库对网站进行非法入侵并修改页面,同时页面上还会被加入恶意软件,持续影响一些网络应用程序,因此他们针对不同的人群(ITPro,最终用户,Web开发者)提供了一系列不同的方案,将资料列出供您参考.<br /><br /><strong>详细查看:</strong><a href="http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx" target="_blank">SQL Injection Attack</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=24</link>
			<title><![CDATA[提高网页打开速度的一些小技巧]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[技术]]></category>
			<pubDate>Mon,02 Jun 2008 13:22:36 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=24</guid>	
		<description><![CDATA[互联网带宽越来越宽，似乎让网页的加载速度得到了质的飞跃。其实不然，因为随着带宽的提高，网页上的对象也越来越多，因此加快网页打开速度还是一个重要的课题。加快网页的打开速度，有三个路径，一是提高网络带宽，二是用户在本机做优化，三是网站设计者对网页做一定的优化。这篇文章站在一个网站设计者的角度，分享一些优化网页加载速度的小技巧。 <br /><br />一、优化图片 <br /><br />几乎没有哪个网页上是没有图片的。如果你经历过56K猫的年代，你一定不会很喜欢有大量图片的网站。因为加载那样一个网页会花费大量的时间。 <br /><br />即使在现在，网络带宽有了很多的提高，56K猫逐渐淡出，优化图片以加快网页速度还是很有必要的。 <br /><br />优化图片包括减少图片数、降低图像质量、使用恰当的格式。 <br /><br />1、减少图片数：去除不必要的图片。 <br /><br />2、降低图像质量：如果不是很必要，尝试降低图像的质量，尤其是jpg格式，降低5%的质量看起来变化不是很大，但文件大小的变化是比较大的。 <br /><br />3、使用恰当的格式：请参阅下一点。 <br /><br />因此，在上传图片之前，你需要对图片进行编辑，如果你觉得photoshop太麻烦，可以试试一些在线图片编辑工具。懒得编辑而又想图片有特殊的效果？可以试试用过调用javascript来实现图片特效。 <br /><br />二、图像格式的选择 <br /><br />一般在网页上使用的图片格式有三种，jpg、png、gif。三种格式的具体技术指标不是这篇文章探讨的内容，我们只需要知道在什么时候应该使用什么格式，以减少网页的加载时间。 <br /><br />1、JPG：一般用于展示风景、人物、艺术照的摄影作品。有时也用在电脑截屏上。 <br /><br />2、GIF：提供的颜色较少，可用在一些对颜色要求不高的地方，比如网站logo、按钮、表情等等。当然，gif的一个重要的应用是动画图片。就像用Lunapic制作的倒映图片。 <br /><br />3、PNG：PNG格式能提供透明背景，是一种专为网页展示而发明的图片格式。一般用于需要背景透明显示或对图像质量要求较高的网页上。 <br /><br />三、优化CSS <br /><br />CSS叠层样式表让网页加载起来更高效，浏览体验也得到提高。有了CSS，表格布局的方式可以退休了。 <br /><br />但有时我们在写CSS的时候会使用了一些比较罗嗦的语句，比如这句： <br /><br /><br />margin-top: 10px; <br />margin-right: 20px; <br />margin-bottom: 10px; <br />margin-left: 20px; <br /><br /><br />你可以将它简化为： <br /><br /><br />margin: 10px 20px 10px 20px; <br /><br /><br />又或者这句： <br /><br /><br />&lt;p class=&quot;decorated&quot;&gt;A paragraph of decorated text &lt;/p&gt; <br />&lt;p class=&quot;decorated&quot;&gt;Second paragraph &lt;/p&gt; <br />&lt;p class=&quot;decorated&quot;&gt;Third paragraph &lt;/p&gt; <br />&lt;p class=&quot;decorated&quot;&gt;Forth paragraph &lt;/p&gt; <br /><br /><br />可以用div来包含： <br /><br /><br />&lt;div class=&quot;decorated&quot;&gt; <br />&lt;p&gt;A paragraph of decorated text &lt;/p&gt; <br />&lt;p&gt;Second paragraph &lt;/p&gt; <br />&lt;p&gt;Third paragraph &lt;/p&gt; <br />&lt;p&gt;Forth paragraph &lt;/p&gt; <br />&lt;/div&gt; <br /><br /><br />简化CSS能去除冗余的属性，提高运行效率。如果你写好CSS后懒得去做简化，你可以使用一些在线的简化CSS工具，比如CleanCSS。 <br /><br />四、网址后加斜杠 <br /><br />有些网址，比如&quot;www.kenengba.com/220&quot;，当服务器收到这样一个地址请求的时候，它需要花费时间去确定这个地址的文件类型。如果220是一个目录，不妨在网址后多加一个斜杠，让其变成www.kenengba.com/220/，这样服务器就能一目了然地知道要访问该目录下的index或default文件，从而节省了加载时间。 <br /><br />五、标明高度和宽度 <br /><br />这点很重要，但很多人由于懒惰或其它原因，总是将其忽视。当你在网页上添加图片或表格时，你应该指定它们的高度和宽度，也就是height和width参数。如果浏览器没有找到这两个参数，它需要一边下载图片一边计算大小，如果图片很多，浏览器需要不断地调整页面。这不但影响速度，也影响浏览体验。 <br /><br />下面是一个比较友好的图片代码： <br /><br /><br />&lt;img id=&quot;moon&quot; height=&quot;200&quot; width=&quot;450&quot; src=&quot;http://www.kenengba.com/moon.png&quot; alt=&quot;moon image&quot; /&gt; <br /><br /><br />当浏览器知道了高度和宽度参数后，即使图片暂时无法显示，页面上也会腾出图片的空位，然后继续加载后面的内容。从而加载时间快了，浏览体验也更好了。 <br /><br />六、减少http请求 <br /><br />当浏览者打开某个网页，浏览器会发出很多对象请求（图像、脚本等等），视乎网络延时情况，每个对象加载都会有所延迟。如果网页上对象很多，这可以需要花费大量的时间。 <br /><br />因此，要为http请求减负。如何减负？ <br /><br />1、去除一些不必要的对象。 <br /><br />2、将临近的两张图片合成一张。 <br /><br />3、合并CSS <br /><br />看看下面这段代码，需要加载三个CSS： <br /><br /><br />&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/body.css&quot; /&gt; <br />&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/side.css&quot; /&gt; <br />&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/footer.css&quot; /&gt; <br /><br /><br />我们可以将其合成一个： <br /><br /><br />&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/style.css&quot; /&gt; <br /><br /><br />从而减少http请求。 <br /><br />七、其它小技巧（译者添加） <br /><br />1、去除不必要加载项。 <br /><br />2、如果在网页上嵌入了其它网站的widget，如果有选择余地，一定要选择速度快的。 <br /><br />3、尽量用图片代替flash，这对SEO也有好处。 <br /><br />4、有些内容可以静态化就将其静态化，以减少服务器的负担。 <br /><br />5、统计代码放在页尾。]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=23</link>
			<title><![CDATA[什么是AQ]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[新闻时事]]></category>
			<pubDate>Thu,22 May 2008 13:58:39 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=23</guid>	
		<description><![CDATA[<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">选择今天我要找到美好的事，还是要专注于烦恼的事</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> ? </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">我们要选择感恩、宽容，抑或是要让抱怨、愤怒来折磨我</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> ? </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">我们甚至可以在今天选择关心他人，对他人感兴趣的机会，而不要让冷漠习惯性的在心头。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">30 </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">年前，我对当时的工作非常不满，时常抱怨，也多次口头叫嚷要辞职。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">有一天一位其他部门的年长主管跟我说：「</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">永远不要因为这个工作不好而辞职，一定要因为另一个工作更好而辞职。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">」这二句话对我很重要，影响也很大。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">30 </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">年后的今天，回想起来，他说的真的很有道理。现在的公司制度不好，下一个工作机构的体制多半也有缺陷。现在的公司不公平，谁能保证新的公司一切都很合理公道。现在的公司有派系，天知道多少公司有同样的权力斗争问题。跟现在的主管处不好，新工作的主管就一定处得好吗？</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">（逆境商数</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> ) </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">：</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">近来在企业管理领域出现了个新名词</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">（</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> Adversity Quotient</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">）明确地描绘出一个人的挫折忍受力，或是面对逆境时的处理能力。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">根据</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">专家保罗</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> . </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">史托兹</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">博士的研究，一个人</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">愈高，愈能以弹性面对逆境，积极乐观，接受困难的挑战，发挥创意找出解决方案，因此能不屈不挠，愈挫愈勇，而终究表现卓越。</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">相反的，</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">低的人，则会感到沮丧、迷失，处处抱怨，逃避挑战，缺乏创意，而往往半途而废、自暴自弃，终究一事无成。</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">不但与我们的工作表现息息相关，更是一个人是否快乐的重要关键。尤其在大环境不景气的当下，不论是在职或待业，突发状况的发生机率都会提高，因此练就一身响应逆境的好本领，就愈显重要了。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">到底该怎么做，才能提升自己的</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">呢？</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">1</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">、</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">凡事不抱怨，只解决问题</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">：</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">碰到不如意的情况，</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">低的人会怪东怪西，都是别人的错，害自己不能如愿，抱怨过后，心情往往更加沮丧，而问题依旧无解。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">高的人通常没时间抱怨，因为他们正忙着解决问题。所以请减少抱怨的时间，因为少一分时间抱怨，就多一分时间进步。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">2 </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">、</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">先看优点，再看缺点</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">：</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">当挫折发生时，如果第一个念头是：「完了，这下没救了。」那就很难逃脱悲观的诅咒。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">高手的做法是，遇到状况，先问自己：「现在有什么是可珍惜的？」换句话说，在挫折中找优势，并把它转化成进步的助力。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">例如，突然失业当然错愕，但想一想，现在多了时间自己可支配，还有资遣费，于是再进修培养第二专长，似乎会是不错的想法，也许就此开创出另一番格局。</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">毕竟，自怨自哀解决不了问题，懂得在逆境中找机会，才是高</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">的精彩表现。</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">3</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">、</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">将当下的不幸，变成日后的「幸亏」</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">：</font></span><span style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">看待挫败，</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ </span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">高手清楚知道，一时的成败并不能定一生。</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp; </span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">就像李安，大学没考上，却因此找到了自己真正的舞台，现在想想，还真「幸亏」当时没考上大学，要不现在就不是这番光景了。因此只要保持乐观，塞翁失马焉知非福，</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"> AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">高手就能将当下的不幸，变成日后的幸亏</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">....</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;"></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>
<p class="ecmsonormal" style="BACKGROUND: white; MARGIN: auto 0cm; LAYOUT-GRID-MODE: char"><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">特别是我们做主管的同仁，月</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">/</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">季</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">/</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">年</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">KPI</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">要达标，厂内外的事情繁杂凌乱，派别斗争也相对激烈，</font></span><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #444444; FONT-FAMILY: &quot;Arial&quot;,&quot;sans-serif&quot;">AQ</span><span style="FONT-SIZE: 10pt; COLOR: #444444"><font face="宋体">对我们尤其重要！</font></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #444444; FONT-FAMILY: &quot;Simsun&quot;,&quot;serif&quot;">
<p>&nbsp;</p>
</span></p>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=22</link>
			<title><![CDATA[用户 NT AUTHORITY\NETWORK SERVICE 登录失败解决方法]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[技术]]></category>
			<pubDate>Fri,16 May 2008 21:11:37 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=22</guid>	
		<description><![CDATA[我用的是2003Server的系统，我用Visual studio 2005连接Sql Server 2000时发现，在Visual studio 2005中调试没有出现问题，到了IIS里运行的时候，总是出现：“用户 NT AUTHORITY\NETWORK SERVICE 登录失败”的错误信息，在这里把解决方法贴出来<br/><br/>在Windows XP当中，ASP.NET的运行帐号是ASPNET，而在Windows server 2003当中，运行帐号则改为了Network Service，直接把这个用户加到sql server的登陆帐号里面就好了，这样很多例子就不用去改连接字符串了！<br/><br/>第一步：把&#39;NT AUTHORITY\NETWORK SERVICE&#39; 添加到Administrator组中<br/><br/>我的电脑--&gt;右键--&gt;管理--&gt;本地用户和组选择“组”--&gt;<br/>双击Administrators--&gt;单击“添加”--&gt;单击“高级”--&gt;<br/>单击“立即查找”--&gt;<br/>在下面的列表中选择Network Service用户--&gt;两次单击“确定”--&gt;加入。 <br/><br/>第二步 在企业管理器中加入NetWord Service用户<br/><br/>打开Sql Server企业管理器--&gt;<br/>选择数据库实例--&gt;<br/>打开“安全性”节点--&gt;选择“登录”--&gt;<br/>在右边的列表中单击右键--&gt;选择“新建登录”--&gt;<br/>在“常规”选项卡中单击“名称”旁边的按钮“...”--&gt;<br/>选择“Administrators”组--&gt;单击下面的“成员”按钮--&gt;<br/>选择“Network Service”--&gt;单击“添加”按钮--&gt;<br/>单击“确定”，返回“新建登录”对话框--&gt;<br/>保证身份验证类型为“windows验证”和“允许访问”--&gt;<br/>单击“确定”--&gt;<br/>关闭“企业管理器” <br/><br/>第三步重新运行asp.net程序，数据库连接字符串选择windows验证即可。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=21</link>
			<title><![CDATA[如何用C#探测对方网站是否更新]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[.net]]></category>
			<pubDate>Thu,24 Apr 2008 10:03:27 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=21</guid>	
		<description><![CDATA[<div class="CodeDisplayLanguage">C#</div>
<pre class="code" id="ctl00_rs1_mainContentContainer_ctl34CSharp" space="preserve">Uri myUri = <span style="COLOR: blue">new</span> Uri(url);
<span style="COLOR: green">// Creates an HttpWebRequest for the specified URL. </span>
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
<span style="COLOR: blue">if</span> (myHttpWebResponse.StatusCode == HttpStatusCode.OK)
Console.WriteLine(<span style="COLOR: maroon"><span style="COLOR: maroon">&quot;\r\nRequest succeeded and the requested information is in the response , Description : {0}&quot;</span></span>,
myHttpWebResponse.StatusDescription);
DateTime today = DateTime.Now;
<span style="COLOR: green">// Uses the LastModified property to compare with today's date.</span>
<span style="COLOR: blue">if</span> (DateTime.Compare(today,myHttpWebResponse.LastModified) == 0)
Console.WriteLine(<span style="COLOR: maroon"><span style="COLOR: maroon">&quot;\nThe requested URI entity was modified today&quot;</span></span>);
<span style="COLOR: blue">else</span>
<span style="COLOR: blue">if</span> (DateTime.Compare(today,myHttpWebResponse.LastModified) == 1)
Console.WriteLine(<span style="COLOR: maroon"><span style="COLOR: maroon">&quot;\nThe requested URI was last modified on:{0}&quot;</span></span>,
myHttpWebResponse.LastModified);
<span style="COLOR: green">// Releases the resources of the response.</span>
myHttpWebResponse.Close();
</pre>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=20</link>
			<title><![CDATA[ASP.NET 页生命周期概述]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[技术]]></category>
			<pubDate>Wed,23 Apr 2008 16:45:01 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=20</guid>	
		<description><![CDATA[<a href="http://baodr.com/post/2008/04/ASPNET-e9a1b5e7949fe591bde591a8e69c9fe6a682e8bfb0.aspx">http://baodr.com/post/2008/04/ASPNET-e9a1b5e7949fe591bde591a8e69c9fe6a682e8bfb0.aspx</a>]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=19</link>
			<title><![CDATA[C#中利用正则表达式实现字符串搜索]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[.net]]></category>
			<pubDate>Wed,23 Apr 2008 16:18:58 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=19</guid>	
		<description><![CDATA[摘要：本文给出了在C#下利用正则表达式实现字符串搜索功能的方法，通过对.NET框架下的正则表达式的研究及实例分析，总结了正则表达式的元字符、规则、选项等。 <br /><br />　　关键字：正则表达式、元字符、字符串、匹配 <br /><br />　　1、正则表达式简介 <br /><br />　　正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式；提取、编辑、替换或删除文本子字符串；或将提取的字符串添加到集合以生成报告。对于处理字符串（例如 HTML 处理、日志文件分析和 HTTP 标头分析）的许多应用程序而言，正则表达式是不可缺少的工具。 <br /><br />　　.NET 框架正则表达式并入了其他正则表达式实现的最常见功能，被设计为与 Perl 5 正则表达式兼容，.NET 框架正则表达式还包括一些在其他实现中尚未提供的功能，.NET 框架正则表达式类是基类库的一部分，并且可以和面向公共语言运行库的任何语言或工具一起使用。 <br /><br />　　2、字符串搜索 <br /><br />　　正则表达式语言由两种基本字符类型组成：原义（正常）文本字符和元字符。正是元字符组为正则表达式提供了处理能力。当前，所有的文本编辑器都有一些搜索功能，通常可以打开一个对话框，在其中的一个文本框中键入要定位的字符串，如果还要同时进行替换操作，可以键入一个替换字符串，比如在Windows操作系统中的记事本、Office系列中的文档编辑器都有这种功能。这种搜索最简单的方式，这类问题很容易用String类的String.Replace()方法来解决，但如果需要在文档中识别某个重复的，该怎么办？编写一个例程，从一个String类中选择重复的字是比较复杂的，此时使用语言就很适合。 <br /><br />　　一般表达式语言是一种可以编写搜索表达式的语言。在该语言中，可以把文档中要搜索的文本、转义序列和特定含义的其他字符组合在一起，例如序列\b表示一个字的开头和结尾（子的边界），如果要表示正在查找的以字符th开头的字，就可以编写一般表达式\bth（即序列字符界是-t-h）。如果要搜索所有以th结尾的字，就可以编写th\b（序列t-h-字边界）。但是，一般表达式要比这复杂得多，例如，可以在搜索操作中找到存储部分文本的工具性程序（facility）。 <br /><br />　　3、.NET 框架的正则表达式类 <br /><br />　　下面通过介绍 .NET 框架的正则表达式类，熟悉一下.NET框架下的正则表达式的使用方法。 <br /><br />　　3.1 Regex 类表示只读正则表达式 <br /><br />　　Regex 类包含各种静态方法，允许在不显式实例化其他类的对象的情况下使用其他正则表达式类。以下代码示例创建了 Regex 类的实例并在初始化对象时定义一个简单的正则表达式。请注意，使用了附加的反斜杠作为转义字符，它将 \s 匹配字符类中的反斜杠指定为原义字符。 <br /><br /><br />Regex r; // 声明一个 Regex类的变量 <br />r = new Regex(&quot;\\s2000&quot;); // 定义表达式 <br /><br /><br />　　3.2 Match 类表示正则表达式匹配操作的结果 <br /><br />　　以下示例使用 Regex 类的 Match 方法返回 Match 类型的对象，以便找到输入字符串中第一个匹配。此示例使用 Match 类的 Match.Success 属性来指示是否已找到匹配。 <br /><br /><br />Regex r = new Regex(&quot;abc&quot;); // 定义一个Regex对象实例 <br />Match m = r.Match(&quot;123abc456&quot;); // 在字符串中匹配 <br />if (m.Success) <br />{ <br />　Console.WriteLine(&quot;Found match at position &quot; + m.Index); //输入匹配字符的位置 <br />} <br /><br /><br />　　3.3 MatchCollection 类表示非重叠匹配的序列 <br /><br />　　该集合为只读的，并且没有公共构造函数。MatchCollection 的实例是由 Regex.Matches 属性返回的。使用 Regex 类的 Matches 方法，通过在输入字符串中找到的所有匹配填充 MatchCollection。下面代码示例演示了如何将集合复制到一个字符串数组（保留每一匹配）和一个整数数组（指示每一匹配的位置）中。 <br /><br /><br />MatchCollection mc; <br />String[] results = new String[20]; <br />int[] matchposition = new int[20]; <br />Regex r = new Regex(&quot;abc&quot;); //定义一个Regex对象实例 <br />mc = r.Matches(&quot;123abc4abcd&quot;); <br />for (int i = 0; i &lt; mc.Count; i++) //在输入字符串中找到所有匹配 <br />{ <br />　results[i] = mc[i].Value; //将匹配的字符串添在字符串数组中 <br />　matchposition[i] = mc[i].Index; //记录匹配字符的位置 <br />} <br /><br /><br />　　3.4 GroupCollection 类表示捕获的组的集合 <br /><br />　　该集合为只读的，并且没有公共构造函数。GroupCollection 的实例在 Match.Groups 属性返回的集合中返回。下面的控制台应用程序查找并输出由正则表达式捕获的组的数目。 <br /><br /><br /><br />using System; <br />using System.Text.RegularExpressions; <br />public class RegexTest <br />{ <br />　public static void RunTest() <br />　{ <br />　　Regex r = new Regex(&quot;(a(b))c&quot;); //定义组 <br />　　Match m = r.Match(&quot;abdabc&quot;); <br />　　Console.WriteLine(&quot;Number of groups found = &quot; + m.Groups.Count); <br />　} <br />　public static void Main() <br />　{ <br />　　RunTest(); <br />　} <br />} <br /><br /><br />　　该示例产生下面的输出： <br /><br /><br />Number of groups found = 3 <br /><br /><br />　　3.5 CaptureCollection 类表示捕获的子字符串的序列 <br /><br />　　由于限定符，捕获组可以在单个匹配中捕获多个字符串。Captures属性（CaptureCollection 类的对象）是作为 Match 和 group 类的成员提供的，以便于对捕获的子字符串的集合的访问。例如，如果使用正则表达式 ((a(b))c)+（其中 + 限定符指定一个或多个匹配）从字符串&quot;abcabcabc&quot;中捕获匹配，则子字符串的每一匹配的 Group 的 CaptureCollection 将包含三个成员。 <br /><br />　　下面的程序使用正则表达式 (Abc)+来查找字符串&quot;XYZAbcAbcAbcXYZAbcAb&quot;中的一个或多个匹配，阐释了使用 Captures 属性来返回多组捕获的子字符串。 <br /><br /><br />using System; <br />using System.Text.RegularExpressions; <br />public class RegexTest <br />{ <br />　public static void RunTest() <br />　{ <br />　　int counter; <br />　　Match m; <br />　　CaptureCollection cc; <br />　　GroupCollection gc; <br />　　Regex r = new Regex(&quot;(Abc)+&quot;); //查找&quot;Abc&quot; <br />　　m = r.Match(&quot;XYZAbcAbcAbcXYZAbcAb&quot;); //设定要查找的字符串 <br />　　gc = m.Groups; <br />　　//输出查找组的数目 <br />　　Console.WriteLine(&quot;Captured groups = &quot; + gc.Count.ToString()); <br />　　// Loop through each group. <br />　　for (int i=0; i &lt; gc.Count; i++) //查找每一个组 <br />　　{ <br />　　　cc = gc[i].Captures; <br />　　　counter = cc.Count; <br />　　　Console.WriteLine(&quot;Captures count = &quot; + counter.ToString()); <br />　　　for (int ii = 0; ii &lt; counter; ii++) <br />　　　{ <br />　　　　// Print capture and position. <br />　　　　Console.WriteLine(cc[ii] + &quot; Starts at character &quot; + <br />　　　　cc[ii].Index); //输入捕获位置 <br />　　　} <br />　　} <br />　} <br />　public static void Main() { <br />　　RunTest(); <br />　} <br />} <br /><br /><br />　　此例返回下面的输出结果： <br /><br /><br />Captured groups = 2 <br />Captures count = 1 <br />AbcAbcAbc Starts at character 3 <br />Captures count = 3 <br />Abc Starts at character 3 <br />Abc Starts at character 6 <br />Abc Starts at character 9 <br /><br /><br />　　3.6 Capture 类包含来自单个子表达式捕获的结果 <br /><br />　　在 Group 集合中循环，从 Group 的每一成员中提取 Capture 集合，并且将变量 posn 和 length 分别分配给找到每一字符串的初始字符串中的字符位置，以及每一字符串的长度。 <br /><br /><br />Regex r; <br />Match m; <br />CaptureCollection cc; <br />int posn, length; <br />r = new Regex(&quot;(abc)*&quot;); <br />m = r.Match(&quot;bcabcabc&quot;); <br />for (int i=0; m.Groups[i].Value != &quot;&quot;; i++) <br />{ <br />　cc = m.Groups[i].Captures; <br />　for (int j = 0; j &lt; cc.Count; j++) <br />　{ <br />　　posn = cc[j].Index; //捕获对象位置 <br />　　length = cc[j].Length; //捕获对象长度 <br />　} <br />} <br /><br /><br /><br /><br />图1：对象关系 <br /><br />　　把组合字符组合起来后，每次都会返回一个组对象，就可能并不是我们希望的结果。如果希望把组合字符作为搜索模式的一部分，就会有相当大的系统开销。对于单个的组，可以用以字符序列&quot;?:&quot;开头的组禁止这么做，就像URI样例那样。而对于所有的组，可以在RegEx.Matches()方法上指定RegExOptions.ExplicitCapture标志。 <br /><br />　　4、利用正则表达式实现字符串搜索 <br /><br />　　4.1 在C#中使用.NET一般表达式引擎 <br /><br />　　下面将通过一个样例的开发，执行并显示一些搜索的结果，说明一般表达式的一些特性，以及如何在C#中使用.NET一般表达式引擎。说明使用字符串时应在前面加上符号@。 <br /><br /><br /><br />String Text=@&quot;I can not find my position in Beijing&quot;; <br /><br /><br />　　把这个文本称为输入字符串，为了说明一般表达式.NET类，本文先进行一次纯文本的搜索，这次搜索不带任何转义序列或一般表达式命令。假定要查找所有字符串ion，把这个搜索字符串称为模式。使用一般表达式和上面声明的变量Text，编写出下面的代码： <br /><br /><br />String Pattern = &quot;ion&quot;; <br />MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions); <br />foreach(Match NextMatch in Matches) <br />{ Console.WriteLine(NextMatch.Index); } <br /><br /><br />　　在这段代码中，使用了System.Text.RegularExpressions名称空间中Regex类的静态方法Match()。这个方法的参数是一些输入文本、一个模式和RegexOptions每句中的一组可选标志。Matches()返回MatchCollection，每个匹配都用一个Match对象来表示。在上面的代码中，只是在集合中迭代，使用Match类的Index属性，返回输入文本中匹配所在的索引。运行这段代码，将得到1个匹配项。 <br /><br />　　一般集合的功能主要取决于模式字符串。原因是模式字符串不仅仅包含纯文本。如前所述。还包含元字符和转义序列，元字符是给出命令的特殊字符，而转义序列的工作方式与C#的转义序列相同，它们都是以反斜杠\开头的字符，具有特殊的含义。例如，假定要查找以n开头的字，就可以使用转义序列\b，它表示一个字的边界（字的边界是以某个字母数字标的字符开头，或者后面是一个空白字符或标点符号），下面编写如下代码： <br /><br /><br />String Pattern = @&quot;\bn&quot;; <br />MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase| <br />RegexOptions.ExplicitCapture); <br /><br /><br />　　要在运行时把\b传递给.NET一般表达式引擎，反斜杠\不应被C#编译器解释为转义序列。如果要查找以序列ion结尾的字，可以使用下面的代码： <br /><br /><br />String Pattern = @&quot;ion\b&quot;; <br /><br /><br />　　如果要查找以字母n开头，以序列ion结尾的所有字，需要一个以\bn开头，以ion\b结尾的模式，中间内容怎么办？需要告诉计算机n和ion中间的内容可以是任意长度的字符，只要字符不是空白即可，正确的模式如下所示： <br /><br /><br />String Pattern = @&quot;\bn\S*ion\b&quot;; <br /><br /><br />　　4.2 特定字符或转义序列 <br /><br />　　大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符 \（单个反斜杠）通知正则表达式分析器反斜杠后面的字符不是运算符。例如，分析器将星号 (*) 视为重复限定符，而将后跟星号的反斜杠 (\*) 视为 Unicode 字符 002A。 <br /><br />　　使用一般表达式要习惯的一点是，查看像这样怪异的字符序列，但这个序列的工作是非常逻辑化的。转义序列\S表示任何不适空白的字符。*称为数量词，其含义是前面的字符可以重复任意次，包括0次。序列\S*表示任何不适空白的字符。因此，上面的模式匹配于以n开头，以ion结尾的任何单个字。下表中列出的字符转义在正则表达式和替换模式中都会被识别。 <br /><br />　　表1：特定字符或转义序列 <br /><br />特定字符或转义序列 含义 样例 匹配的样例 <br />^ 输入文本的开头 ^B B，但只能是文本中的第一个字符 <br />$ 输入文本的结尾 X$ X，但只能是文本中的最后一个字符 <br />. 除了换行字符（\n）以外的所有单个字符 i.ation isation、ization <br />* 可以重复0次或多次的前导字符 ra*t rat、raat等 <br />+ 可以重复1次或多次的前导字符 ra+t rt、rat、raat等 <br />？ 可以重复0次或1次的前导字符 ra?t 只有rt和rat匹配 <br />\s 任何空白字符 \sa [space]a,\ta,\na（\t和\n与C#的\t和\n含义相同） <br />\S 任何不是空白的字符 \SF aF,rF,cF，但不能是\tf <br />\b 字边界 ion\b 以ion结尾的任何字 <br />\B 不是字边界的位置 \BX\B 字中间的任何X <br /><br />　　如果要搜索一个元字符，也可以通过带有反斜杠的转义字符来表示。例如，.表示除了换行字符以外的任何字符，而\.表示一个点。 <br />可以把可替换的字符放在方括号中，请求匹配包含这些字符。例如，[1|c]表示字符可以是1或者是c。如果要搜索map或者man，可以使用序列&quot;ma[n|p]&quot;（仅指引号内字符，下面雷同）。在方括号中，也可以制定一个范围，例如&quot;[a-z]&quot;表示所有的小写字母（使用连字号 (-) 允许指定连续字符范围），&quot;[B-F]&quot;表示B到F之间的所有大写字母，&quot;[0-9]&quot;表示一个数字，如果要搜索一个整数（该序列只包含0到9的字符），就可以编写&quot;[0-9]+&quot;（注意，使用+字符表示至少要有这样一个数字，但可以有多个数字，所以9、83和3443等都是匹配的。） <br />下面看看一般表达式的结果，编写一个实例RegularExpressionsZzy。建立几个一般表达式，显示其结果，让用户了解一下表达式是如何工作的。 <br /><br />　　该实例的核心是一个方法WriteMatches()，它把MatchCollection中的所有匹配以比较详细的方式显示出来。对于每个匹配，它都会显示该匹配在输入字符串中所在的索引，匹配的字符串和一个略长的字符串，其中包含输入文本中至多8个外围字符，其中至少有5个字符放在匹配的前面，至多5个字符放在匹配的后面（如果匹配的位置在输入文本的开头或结尾5个字符内，则结果中匹配前后的字符就会少于4个）。换言之，靠近输入文本末尾的匹配应是&quot;and messaging ofd&quot;，匹配的前后各有5个字符，但位于输入文本的最后一个字上的匹配就应是&quot;g of data&quot;，匹配的字后只有一个字符。因为在该字符的后面是字符串的结尾。这个长字符串可以更清楚地表明一般表达式是在什么地方查找到匹配的： <br /><br /><br />static void WriteMatches(string text, MatchCollection matches) <br />{ <br />　Console.WriteLine(&quot;Original text was: \n\n&quot; + text + &quot;\n&quot;); <br />　Console.WriteLine(&quot;No. of matches: &quot; + matches.Count); <br />　foreach (Match nextMatch in matches) <br />　{ <br />　　int Index = nextMatch.Index; <br />　　string result = nextMatch.ToString(); <br />　　int charsBefore = (Index &lt; 5) ? Index : 5; <br />　　int fromEnd = text.Length - Index - result.Length; <br />　　int charsAfter = (fromEnd &lt; 5) ? fromEnd : 5; <br />　　int charsToDisplay = charsBefore + charsAfter + result.Length; <br />　　Console.WriteLine(&quot;Index: {0}, \tString: {1}, \t{2}&quot;,Index, result, <br />　　text.Substring(Index - charsBefore, charsToDisplay)); <br />　} <br />} <br /><br /><br />　　在这个方法中，处理过程是确定在较长的字符串中有多少个字符可以显示，而无需超限输入文本的开头或结尾。注意在Match对象上使用了另一个属性Value，它包含标识该匹配的字符串，而且，RegularExpressionsZzy只包含名为Find_po，Find_n等的方法，这些方法根据本文执行某些搜索操作。 <br /><br />　　4.3 正则表达式选项 <br /><br />　　可以使用影响匹配行为的选项修改正则表达式模式。可以通过两种基本方法设置正则表达式选项：其一是可以在 Regex(pattern, options) 构造函数中的 options 参数中指定，其中 options 是 RegexOptions 枚举值的按位&quot;或&quot;组合；其二是使用内联 (?imnsx-imnsx:) 分组构造或 (?imnsx-imnsx) 其他构造在正则表达式模式内设置它们。 <br /><br />　　在内联选项构造中，一个选项或一组选项前面的减号 (-) 用于关闭这些选项。例如，内联构造 (?ix-ms) 将打开 IgnoreCase 和 IgnorePatternWhiteSpace 选项而关闭 Multiline 和 Singleline 选项。 <br /><br />　　表2：RegexOptions 枚举的成员以及等效的内联选项字符 <br /><br />RegexOption 成员 内联字符 说明 <br />None 无 指定不设置任何选项。 <br />IgnoreCase i 指定不区分大小写的匹配。 <br />Multiline m 指定多行模式。更改 ^ 和 $ 的含义，以使它们分别与任何行的开头和结尾匹配，而不只是与整个字符串的开头和结尾匹配。 <br />ExplicitCapture n 指定唯一有效的捕获是显式命名或编号的 (?&lt;name&gt;...) 形式的组。这允许圆括号充当非捕获组，从而避免了由 (?:...) 导致的语法上的笨拙。 <br />Compiled 无 指定正则表达式将被编译为程序集。生成该正则表达式的 Microsoft 中间语言 (MSIL) 代码；以较长的启动时间为代价，得到更快的执行速度。 <br />Singleline s 指定单行模式。更改句点字符 (.) 的含义，以使它与每个字符（而不是除 \n 外的所有字符）匹配。 <br />IgnorePatternWhitespace x 指定从模式中排除非转义空白并启用数字符号 (#) 后面的注释。请注意，空白永远不会从字符类中消除。 <br />RightToLeft 无 指定搜索是从右向左而不是从左向右进行的。具有此选项的正则表达式将移动到起始位置的左边而不是右边。（因此，起始位置应指定为字符串的结尾而不是开头。）为了避免构造具有无限循环的正则表达式的可能性，此选项不能在中流指定。但是，(?&lt;) 回顾后发构造提供了可用作子表达式的类似替代物。 <br />ECMAScript 无 指定已为表达式启用了符合 ECMAScript 的行为。此选项仅可与 IgnoreCase 和 Multiline 标志一起使用。将 ECMAScript 同任何其他标志一起使用将导致异常。 <br /><br />　　例如，Find_po在字开头处查找以&quot;po&quot;开头的字符串： <br /><br /><br />static void Find_po() <br />{ <br />　string text = @&quot; I can not find my position in Beijing &quot;; <br />　string pattern = @&quot;\bpo\S*ion\b&quot;; <br />　MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase <br />| RegexOptions.IgnorePatternWhitespace | RegexOptions.ExplicitCapture); <br />　WriteMatches(text, matches); <br />} <br /><br /><br />　　这段代码还使用了名称空间RegularExpressions： <br /><br /><br />using System; <br />using System.Text.RegularExpressions; <br /><br /><br />　　4.4 匹配、组和捕获 <br /><br />　　一般表达式的一个很好的特性是可以把字符组合起来，方式与C#中的复合语句一样。在C#中，可以通过把任意数量的语句放在花括号中的方式把它们组合在一起。其结果就像一个复合语句那样。在一般表达式模式中，也可以把任何字符组合起来（包括元字符和转义序列），像处理一个字符那样处理它们。唯一的区别是要使用圆括号，而不是花括号，得到的序列成为一个组。 <br /><br />　　例如，模式&quot;(an)+&quot;定位序列an的任以重复。量词+只应用于它前面的一个字符，但因为我们把字符组合起来了，所以它现在把重复的an作为一个单元来对待。&quot;(an).&quot;应用到输入文本&quot;bananas came to Europe late in the annals of history&quot;上，会从bananas中选择出anan。另一方面，如果使用an+，则将从annals中选择ann，从bananas中选择出两个an。为什么(an)+选择的是anan，而没有把单个的an作为一个匹配。匹配规则是不能重复的，如果有可能重复，在默认情况下就选择较长的匹配。 <br /><br />　　但是，组的功能要比这强大得多。在默认情况下，把模式的一部分组合为一个组时，就要求一般表达式引擎记住可以按照这个组来匹配，也可以按照整个模式来匹配。换言之，可以把组当作一个要匹配的模式，如果要把字符串分解为各个部分，这种模式就是非常有效的。 <br />例如，URI的格式是&quot;&lt;protocol&gt;://&lt;address&gt;:&lt;port&gt;&quot;，其中端口是可选的。它的一个样例是http://www.comprg.com.cn:8080。假定要从一个URI中提取协议、地址和端口，而且紧邻URI的后面可能有空白（但没有标点符号），就可以使用下面的表达式：&quot;\b(\S+)://(\S+)(?::(\S+))?\b&quot; <br /><br />　　该表达式的工作方式如下：首先，前导和尾部的\b序列确保只需要考虑完全是字的文本部分，在这个文本部分中，第一组&quot;(\S+)://&quot;会选择一个或多个不适空白的字符，其后是&quot;://&quot;。在HTTPURI的开头会选择出http://。花括号表示把http存储为一个组。后面的&quot;(\S+)&quot;则在上述URI中选择www. comprg.com.cn，这个组在遇到词的结尾时或标记另一个组的冒号&quot;(:)&quot;时结束。 <br /><br />　　下一个组选择端口（本例是:8080）。后面的？表示这个组在匹配中是可选的，如果没有:xxxx，也不会妨碍匹配的标记。 <br /><br />　　这是非常重要的，因为端口在URI中一般不指定，实际上，在大多数情况下，URI是没有端口号的。但是，事情会比较复杂。如果要求冒号可以出现，也可以不出现，但不希望把这个冒号也存储在组中。为此，可以嵌套两个组：内部的&quot;(\S+)&quot;组选择冒号后面的内容（本例中是8080），外面的组包含内部的组，后面是一个冒号，该冒号又在序列&quot;?:&quot;的后面。这个序列表示该组不应保存（只需要保存&quot;8080&quot;，不需要保存&quot;:8080&quot;）。不要把这两个冒号混淆了，第一个冒号是序列&quot;?:&quot;的一部分，表示不保存这个组，第二个冒号是要搜索的文本。 <br /><br />　　在这个字符串上运行该模式：I always visit http://www. comprg.com.cn 得到的匹配是http://www. comprg.com.cn。在这个匹配中，仅提到了三个组，还有第四个组表示匹配本身。理论上，每个组都可以选择0次、1次或者多次匹配。单个的匹配就称为捕获。在第一个组&quot;(\S+)&quot;，有一个捕获http。第二个组也有一个捕获www. comprg.com.cn，但第三个组没有捕获，因为在这个URI中没有端口号。注意该字符串在其本身上包含第二个http://。虽然它匹配于第一个组，但不会被搜索出来，因为整个搜索表达式不匹配于这部分文本。 <br />再比如下面这个例子，以下代码示例使用 Match.Result 来从 URL提取协议和端口号。例如，&quot;http://www.yahoo.com.cn:8080/index.html&quot;将返回&quot;http:8080&quot;。 <br /><br /><br />String Extension(String url) <br />{ <br />　Regex r = new Regex(@&quot;^(?&lt;proto&gt;\w+)://[^/]+?(?&lt;port&gt;:\d+)?/&quot;, <br />　RegexOptions.Compiled); <br />　return r.Match(url).Result(&quot;${proto}${port}&quot;); <br />} <br /><br /><br />　　5、小结 <br /><br />　　.NET 框架正则表达式类是基类库的一部分，并且可以和面向公共语言运行库的任何语言或工具（包括 ASP.NET 和 Visual Studio .NET）一起使用。本文给出了在C#下利用正则表达式实现字符串搜索功能的方法，通过对.NET框架下的正则表达式的研究及实例分析，总结了正则表达式的规则、选项等，方便以后朋友们的应用。 <br />]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=18</link>
			<title><![CDATA[采集网页链接的正则表达式]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[.net]]></category>
			<pubDate>Wed,23 Apr 2008 16:13:20 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=18</guid>	
		<description><![CDATA[(h|H)(r|R)(e|E)(f|F) *= *('|&quot;&quot;)?((\w|\\|\/|\.|:|-|_|\?|=)+)('|&quot;&quot;| *|&gt;)?]]></description>
		</item>
		
			<item>
			<link>http://www.haoder.com/default.asp?id=17</link>
			<title><![CDATA[用正则表达式过滤脚本的一些研究(asp.net + C#) ]]></title>
			<author>kevin.han#remai.com(admin)</author>
			<category><![CDATA[技术]]></category>
			<pubDate>Wed,23 Apr 2008 16:08:27 +0800</pubDate>
			<guid>http://www.haoder.com/default.asp?id=17</guid>	
		<description><![CDATA[在做一些网站（特别是BBS之类）时，经常会有充许用户输入html样式代码，却禁止脚本的运行的需求, 以达到丰富网样式，禁止恶意代码的运行。 <br />当然不能用 HtmlEncode 和 HtmlDecode 方法,因为这样连基本的html代码会被禁止掉。 <br />我在网上搜索，也没有找到好的解决办法，倒是收集了一些脚本攻击的实例： <br />. &lt;script&gt;标记中包含的代码 <br />. &lt;a href=javascript:...中的代码 <br />. 其它基本控件的 on...事件中的代码 <br />. iframe 和 frameset 中载入其它面造成的攻击 <br />有了这些资料后，事情就简单多了，写一个简单的方法，用正则表达式把以上符合几点的代码替换掉: <br />public string wipeScript(string html) <br />{ <br />System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot;&lt;script[\s\S]+&lt;/script *&gt;&quot;,System.Text.RegularExpressions.RegexOptions.IgnoreCase); <br />System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot; href *= *[\s\S]*script *:&quot;,System.Text.RegularExpressions.RegexOptions.IgnoreCase); <br />System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot; on[\s\S]*=&quot;,System.Text.RegularExpressions.RegexOptions.IgnoreCase); <br />System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot;&lt;iframe[\s\S]+&lt;/iframe *&gt;&quot;,System.Text.RegularExpressions.RegexOptions.IgnoreCase); <br />System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot;&lt;frameset[\s\S]+&lt;/frameset *&gt;&quot;,System.Text.RegularExpressions.RegexOptions.IgnoreCase); <br />html = regex.Replace(html, &quot;&quot;); //过滤&lt;script&gt;&lt;/script&gt;标记 <br />html = regex.Replace(html, &quot;&quot;); //过滤href=javascript: (&lt;A&gt;) 属性 <br />html = regex.Replace(html, &quot; _disibledevent=&quot;); //过滤其它控件的on...事件 <br />html = regex.Replace(html, &quot;&quot;); //过滤iframe <br />html = regex.Replace(html, &quot;&quot;); //过滤frameset <br />return html; <br />} <br />此方法输入可能包含脚本的html代码，返回则就是干净的代码了。 <br />我做过一些简单的测试，可以满中要求，只是还存在几个疑问： <br />以上考滤的情况是否比较完善, 还存在其它的脚本攻击手段吗？ <br />是否会有其它更好的解决办法? <br />]]></description>
		</item>
		
</channel>
</rss>