<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>71街 &#187; Javascript</title>
	<atom:link href="http://www.71j.cn/archives/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.71j.cn</link>
	<description>杜工的技术博客</description>
	<lastBuildDate>Fri, 16 Dec 2011 03:52:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>文本域(textarea)的高度自适应实现两法</title>
		<link>http://www.71j.cn/archives/151</link>
		<comments>http://www.71j.cn/archives/151#comments</comments>
		<pubDate>Thu, 11 Mar 2010 03:51:51 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[textarea]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=151</guid>
		<description><![CDATA[随着HTML5的即将退出，相信大家对页面更加人性化有了一定的期待，这里我介绍两种方法，让你的textarea能够实现根据内容自动调整高度，让你的页面也炫起来！ 方法一，使用JS自动调整 &#60;text... ]]></description>
			<content:encoded><![CDATA[<p>随着HTML5的即将退出，相信大家对页面更加人性化有了一定的期待，这里我介绍两种方法，让你的textarea能够实现根据内容自动调整高度，让你的页面也炫起来！</p>
<p>方法一，使用JS自动调整</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mytextarea&quot;</span> <span style="color: #000066;">cols</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;80&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;overflow-y:hidden;height:80px;&quot;</span> onpropertychange<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;this.style.height=this.scrollHeight+'px';&quot;</span> oninput<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;this.style.height=this.scrollHeight+'px';&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">textarea</span>&gt;</span></pre></div></div>

<p>方法二，使用css控制，只需给文本域设置overflow-y:visible样式，比较简单，推荐使用</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:300px;overflow-y:visible&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>texarea&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/151/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS数据压缩算法</title>
		<link>http://www.71j.cn/archives/60</link>
		<comments>http://www.71j.cn/archives/60#comments</comments>
		<pubDate>Fri, 04 Sep 2009 04:18:40 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[分享]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[数据压缩]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=60</guid>
		<description><![CDATA[研究Google chart API的时候发现它提供的数据压缩算法不错，可以把纯数字的数组压缩成很短的一个字符串，分享如下： var simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; &#160; funct... ]]></description>
			<content:encoded><![CDATA[<p>研究Google chart API的时候发现它提供的数据压缩算法不错，可以把纯数字的数组压缩成很短的一个字符串，分享如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> simpleEncoding <span style="color: #339933;">=</span> <span style="color: #3366CC;">'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> simpleEncode<span style="color: #009900;">&#40;</span>values<span style="color: #339933;">,</span>maxValue<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> chartData <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'s:'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> values.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003366; font-weight: bold;">var</span> currentValue <span style="color: #339933;">=</span> values<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>isNaN<span style="color: #009900;">&#40;</span>currentValue<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> currentValue <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
chartData.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>simpleEncoding.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>simpleEncoding.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> currentValue <span style="color: #339933;">/</span> maxValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
chartData.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'_'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">return</span> chartData.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>测试例子：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> valueArray <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">20</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span><span style="color: #CC0000;">40</span><span style="color: #339933;">,</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span><span style="color: #CC0000;">60</span><span style="color: #339933;">,</span><span style="color: #CC0000;">81</span><span style="color: #339933;">,</span><span style="color: #CC0000;">74</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> maxValue <span style="color: #339933;">=</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>
document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span>simpleEncode<span style="color: #009900;">&#40;</span>valueArray<span style="color: #339933;">,</span>maxValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/60/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>用js计算时间差，得到比较人性化的结果</title>
		<link>http://www.71j.cn/archives/56</link>
		<comments>http://www.71j.cn/archives/56#comments</comments>
		<pubDate>Thu, 03 Sep 2009 09:48:21 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[时间]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=56</guid>
		<description><![CDATA[我们经常看到一些文章或者评论的发表时间不是直接显示出死板的Y-m-d格式，而是算了一个时间差，如：发表于2分钟前，这样显得比较人性化，多用于一些非正式网站。下面提供JavaScript的实现... ]]></description>
			<content:encoded><![CDATA[<p>我们经常看到一些文章或者评论的发表时间不是直接显示出死板的Y-m-d格式，而是算了一个时间差，如：发表于2分钟前，这样显得比较人性化，多用于一些非正式网站。下面提供JavaScript的实现方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> minute <span style="color: #339933;">=</span> <span style="color: #CC0000;">1000</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> hour <span style="color: #339933;">=</span> minute <span style="color: #339933;">*</span> <span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> day <span style="color: #339933;">=</span> hour <span style="color: #339933;">*</span> <span style="color: #CC0000;">24</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> halfamonth <span style="color: #339933;">=</span> day <span style="color: #339933;">*</span> <span style="color: #CC0000;">15</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> month <span style="color: #339933;">=</span> day <span style="color: #339933;">*</span> <span style="color: #CC0000;">30</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> getDateDiff<span style="color: #009900;">&#40;</span>dateTimeStamp<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> now <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> diffValue <span style="color: #339933;">=</span> now <span style="color: #339933;">-</span> dateTimeStamp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>diffValue <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 <span style="color: #006600; font-style: italic;">//非法操作</span>
 <span style="color: #006600; font-style: italic;">//alert(&quot;结束日期不能小于开始日期！&quot;);</span>
 <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> monthC <span style="color: #339933;">=</span>diffValue<span style="color: #339933;">/</span>month<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> weekC <span style="color: #339933;">=</span>diffValue<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7</span><span style="color: #339933;">*</span>day<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> dayC <span style="color: #339933;">=</span>diffValue<span style="color: #339933;">/</span>day<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> hourC <span style="color: #339933;">=</span>diffValue<span style="color: #339933;">/</span>hour<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> minC <span style="color: #339933;">=</span>diffValue<span style="color: #339933;">/</span>minute<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>monthC<span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;发表于&quot;</span> <span style="color: #339933;">+</span> parseInt<span style="color: #009900;">&#40;</span>monthC<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;个月前&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>weekC<span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;发表于&quot;</span> <span style="color: #339933;">+</span> parseInt<span style="color: #009900;">&#40;</span>weekC<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;个星期前&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dayC<span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;发表于&quot;</span><span style="color: #339933;">+</span> parseInt<span style="color: #009900;">&#40;</span>dayC<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;天前&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>hourC<span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;发表于&quot;</span><span style="color: #339933;">+</span> parseInt<span style="color: #009900;">&#40;</span>hourC<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;个小时前&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>minC<span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;发表于&quot;</span><span style="color: #339933;">+</span> parseInt<span style="color: #009900;">&#40;</span>minC<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;分钟前&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span>
 result<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;刚刚发表&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">?</span> <span style="color: #000066; font-weight: bold;">return</span> result<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>如果你得到的原始数据不是时间戳，可以采用下面的函数把字符串转换为标准时间戳, 它相当于JS版的strtotime，只不过精度不同罢了：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> getDateTimeStamp<span style="color: #009900;">&#40;</span>dateStr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">return</span> Date.<span style="color: #660066;">parse</span><span style="color: #009900;">&#40;</span>dateStr.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/-/gi</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/56/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用javascript从url获取参数值</title>
		<link>http://www.71j.cn/archives/33</link>
		<comments>http://www.71j.cn/archives/33#comments</comments>
		<pubDate>Tue, 01 Sep 2009 10:04:07 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=33</guid>
		<description><![CDATA[随着Ajax的泛滥，有时需要我们从url获取变量进行用户交互，本函数提供了获取方法： function getQuery&#40;name&#41; &#123; var reg = new RegExp&#40;&#34;(^&#124;&#38;)&#34;+ name +&#34;=([^&#38;]*)(&#38;&#124;$)&#34;&#41;; va... ]]></description>
			<content:encoded><![CDATA[<p>随着Ajax的泛滥，有时需要我们从url获取变量进行用户交互，本函数提供了获取方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> getQuery<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> reg <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;(^|&amp;)&quot;</span><span style="color: #339933;">+</span> <span style="color: #000066;">name</span> <span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=([^&amp;]*)(&amp;|$)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> r <span style="color: #339933;">=</span> window.<span style="color: #660066;">location</span>.<span style="color: #660066;">search</span>.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>reg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>r<span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> unescape<span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>如需要从下面地址中获取id的值：</p>
<p>http://71j.cn/a.php?a=my&#038;id=7&#038;m=1</p>
<p>只需要在当前页面调用getQuery(“id”)即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我也收集了一些常用的正则表达式</title>
		<link>http://www.71j.cn/archives/28</link>
		<comments>http://www.71j.cn/archives/28#comments</comments>
		<pubDate>Tue, 01 Sep 2009 09:54:16 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[分享]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=28</guid>
		<description><![CDATA[兄弟姊妹们，这可是极品文章，强烈建议大家收藏，以后不用每次都费劲脑汁编正则表达式了！ 匹配中文字符的正则表达式： [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内)：[^\x00-\xff] 应用：计... ]]></description>
			<content:encoded><![CDATA[<p>兄弟姊妹们，这可是极品文章，强烈建议大家收藏，以后不用每次都费劲脑汁编正则表达式了！<br />
匹配中文字符的正则表达式： [\u4e00-\u9fa5]</p>
<p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]</p>
<p>应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">String.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">len</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x00<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span>g<span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;aa&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>匹配空行的正则表达式：\n[\s| ]*\r</p>
<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/</p>
<p>匹配首尾空格的正则表达式：(^\s*)|(\s*$)</p>
<p>应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">String.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">trim</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(^\s*)|(\s*$)/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>利用正则表达式分解和转换IP地址：</p>
<p>下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的javascript程序：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> IP2V<span style="color: #009900;">&#40;</span>ip<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
re<span style="color: #339933;">=</span><span style="color: #009966; font-style: italic;">/(\d+)\.(\d+)\.(\d+)\.(\d+)/g</span> <span style="color: #006600; font-style: italic;">//匹配IP地址的正则表达式</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>re.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>ip<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">return</span> RegExp.$1<span style="color: #339933;">*</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>RegExp.$2<span style="color: #339933;">*</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>RegExp.$3<span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">+</span>RegExp.$4<span style="color: #339933;">*</span><span style="color: #CC0000;">1</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">throw</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Not a valid IP address!&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ip<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;10.100.20.168&quot;</span>
ip<span style="color: #339933;">=</span>ip.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;IP值是：&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>ip<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">+</span>ip<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">+</span>ip<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">255</span><span style="color: #339933;">+</span>ip<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p>
<p>匹配网址URL的正则表达式：http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?</p>
<p>利用正则表达式去除字串中重复的字符的算法程序：[注：此程序不正确，原因见本贴回复]</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> s<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;abacabefgeeii&quot;</span>
<span style="color: #003366; font-weight: bold;">var</span> s1<span style="color: #339933;">=</span>s.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(.).*\1/g</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;$1&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #003366; font-weight: bold;">var</span> re<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;[&quot;</span><span style="color: #339933;">+</span>s1<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;]&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;g&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #003366; font-weight: bold;">var</span> s2<span style="color: #339933;">=</span>s.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>re<span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>s1<span style="color: #339933;">+</span>s2<span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">//结果为：abcefgi</span></pre></div></div>

<p>我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</p>
<p>得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">s<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://www.71j.cn/page1.htm&quot;</span>
s<span style="color: #339933;">=</span>s.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(.*\/){0,}([^\.]+).*/ig</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;$2&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span></pre></div></div>

<p>利用正则表达式限制网页表单里的文本框输入内容：</p>
<p>用正则表达式限制只能输入中文：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">onkeyup<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;value=value.replace(/[^<span style="color: #000099; font-weight: bold;">\u</span>4E00-<span style="color: #000099; font-weight: bold;">\u</span>9FA5]/g,'')&quot;</span> onbeforepaste<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;clipboardData.setData('text',clipboardData.getData('text').replace(/[^<span style="color: #000099; font-weight: bold;">\u</span>4E00-<span style="color: #000099; font-weight: bold;">\u</span>9FA5]/g,''))&quot;</span></pre></div></div>

<p>用正则表达式限制只能输入全角字符：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> onkeyup<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;value=value.replace(/[^<span style="color: #000099; font-weight: bold;">\u</span>FF00-<span style="color: #000099; font-weight: bold;">\u</span>FFFF]/g,'')&quot;</span> onbeforepaste<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;clipboardData.setData('text',clipboardData.getData('text').replace(/[^<span style="color: #000099; font-weight: bold;">\u</span>FF00-<span style="color: #000099; font-weight: bold;">\u</span>FFFF]/g,''))&quot;</span></pre></div></div>

<p>用正则表达式限制只能输入数字：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">onkeyup<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;value=value.replace(/[^<span style="color: #000099; font-weight: bold;">\d</span>]/g,'') &quot;</span>onbeforepaste<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;clipboardData.setData('text',clipboardData.getData('text').replace(/[^<span style="color: #000099; font-weight: bold;">\d</span>]/g,''))&quot;</span></pre></div></div>

<p>用正则表达式限制只能输入数字和英文：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">onkeyup<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;value=value.replace(/[<span style="color: #000099; font-weight: bold;">\W</span>]/g,'') &quot;</span>onbeforepaste<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;clipboardData.setData('text',clipboardData.getData('text').replace(/[^<span style="color: #000099; font-weight: bold;">\d</span>]/g,''))&quot;</span></pre></div></div>

<p>判断是否为数字</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> isNumber<span style="color: #009900;">&#40;</span>oNum<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>oNum<span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> strP<span style="color: #339933;">=</span><span style="color: #009966; font-style: italic;">/^\d+(\.\d+)?$/</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>strP.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>oNum<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>parseFloat<span style="color: #009900;">&#40;</span>oNum<span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span>oNum<span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>ex<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/28/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript入门第一秘籍：$</title>
		<link>http://www.71j.cn/archives/3</link>
		<comments>http://www.71j.cn/archives/3#comments</comments>
		<pubDate>Mon, 31 Aug 2009 10:00:48 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=3</guid>
		<description><![CDATA[这年头，做什么东西都要符合标准，赶潮流。这不，获取页面元素的方法也要符合w3c标准，可是那个document.getElememtById(&#8216;obj_id&#8217;)也太长了，写起来很是心烦。 不怕，我们可以给它来个缩... ]]></description>
			<content:encoded><![CDATA[<p>这年头，做什么东西都要符合标准，赶潮流。这不，获取页面元素的方法也要符合w3c标准，可是那个document.getElememtById(&#8216;obj_id&#8217;)也太长了，写起来很是心烦。</p>
<p>不怕，我们可以给它来个缩写：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> $<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">return</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样，只需要用$(&#8216;obj_id&#8217;)就可以获得我们想要的元素了。嘿嘿，是不是很方便？类似的，也可以定义一些其它比较繁琐但又经常用到的方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> $F<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">return</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">value</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">function</span> $E<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">return</span> encodeURIComponent<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>当然，如果你使用一些js框架，如jquery等，$符号一般都被赋予了其它功能，使用时要注意不要冲突了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

