﻿<?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-太阳雨</title><link>http://www.blogjava.net/sy1214520/</link><description>痛并快乐着</description><language>zh-cn</language><lastBuildDate>Wed, 03 Dec 2008 04:57:11 GMT</lastBuildDate><pubDate>Wed, 03 Dec 2008 04:57:11 GMT</pubDate><ttl>60</ttl><item><title>用Javascript实现评估用户输入密码的强度 </title><link>http://www.blogjava.net/sy1214520/archive/2008/12/02/243911.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Tue, 02 Dec 2008 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/12/02/243911.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/243911.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/12/02/243911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/243911.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/243911.html</trackback:ping><description><![CDATA[<div class="postbody">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">CharMode函数&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">测试某个字符是属于哪一类.&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_108_362_Open_Image" style="display: inline" onclick="this.style.display='none'; Codehighlighter1_108_362_Open_Text.style.display='none'; Codehighlighter1_108_362_Closed_Image.style.display='inline'; Codehighlighter1_108_362_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_108_362_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_108_362_Closed_Text.style.display='none'; Codehighlighter1_108_362_Open_Image.style.display='inline'; Codehighlighter1_108_362_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;CharMode(iN)</span><span id="Codehighlighter1_108_362_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_108_362_Open_Text" style="display: inline"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(iN</span><span style="color: #000000">&gt;=</span><span style="color: #000000">48</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;iN&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">57</span><span style="color: #000000">)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">数字&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(iN</span><span style="color: #000000">&gt;=</span><span style="color: #000000">65</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;iN&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">90</span><span style="color: #000000">)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">大写字母&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(iN</span><span style="color: #000000">&gt;=</span><span style="color: #000000">97</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;iN&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">122</span><span style="color: #000000">)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">小写&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">8</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">特殊字符&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">bitTotal函数&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">计算出当前密码当中一共有多少种模式&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_447_612_Open_Image" onclick="this.style.display='none'; Codehighlighter1_447_612_Open_Text.style.display='none'; Codehighlighter1_447_612_Closed_Image.style.display='inline'; Codehighlighter1_447_612_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_447_612_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_447_612_Closed_Text.style.display='none'; Codehighlighter1_447_612_Open_Image.style.display='inline'; Codehighlighter1_447_612_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;bitTotal(num)</span><span id="Codehighlighter1_447_612_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_447_612_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modes</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br />
<img id="Codehighlighter1_501_574_Open_Image" onclick="this.style.display='none'; Codehighlighter1_501_574_Open_Text.style.display='none'; Codehighlighter1_501_574_Closed_Image.style.display='inline'; Codehighlighter1_501_574_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_501_574_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_501_574_Closed_Text.style.display='none'; Codehighlighter1_501_574_Open_Image.style.display='inline'; Codehighlighter1_501_574_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_501_574_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_501_574_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(num&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;modes</span><span style="color: #000000">++</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num</span><span style="color: #000000">&gt;&gt;&gt;=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;modes;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">checkStrong函数&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">返回密码的强度级别&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_696_965_Open_Image" onclick="this.style.display='none'; Codehighlighter1_696_965_Open_Text.style.display='none'; Codehighlighter1_696_965_Closed_Image.style.display='inline'; Codehighlighter1_696_965_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_696_965_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_696_965_Closed_Text.style.display='none'; Codehighlighter1_696_965_Open_Image.style.display='inline'; Codehighlighter1_696_965_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;checkStrong(sPW)</span><span id="Codehighlighter1_696_965_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_696_965_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(sPW.length</span><span style="color: #000000">&lt;=</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">密码太短&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modes</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br />
<img id="Codehighlighter1_821_919_Open_Image" onclick="this.style.display='none'; Codehighlighter1_821_919_Open_Text.style.display='none'; Codehighlighter1_821_919_Closed_Image.style.display='inline'; Codehighlighter1_821_919_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_821_919_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_821_919_Closed_Text.style.display='none'; Codehighlighter1_821_919_Open_Image.style.display='inline'; Codehighlighter1_821_919_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">sPW.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_821_919_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_821_919_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">测试每一个字符的类别并统计一共有多少种模式.&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modes</span><span style="color: #000000">|=</span><span style="color: #000000">CharMode(sPW.charCodeAt(i));&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;bitTotal(Modes);&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">pwStrength函数&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1071_1904_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1071_1904_Open_Text.style.display='none'; Codehighlighter1_1071_1904_Closed_Image.style.display='inline'; Codehighlighter1_1071_1904_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1071_1904_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1071_1904_Closed_Text.style.display='none'; Codehighlighter1_1071_1904_Open_Image.style.display='inline'; Codehighlighter1_1071_1904_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;pwStrength(pwd)</span><span id="Codehighlighter1_1071_1904_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1071_1904_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O_color</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#eeeeee</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L_color</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#FF0000</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M_color</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#FF9900</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;H_color</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#33CC00</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img id="Codehighlighter1_1217_1267_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1217_1267_Open_Text.style.display='none'; Codehighlighter1_1217_1267_Closed_Image.style.display='inline'; Codehighlighter1_1217_1267_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1217_1267_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1217_1267_Closed_Text.style.display='none'; Codehighlighter1_1217_1267_Open_Image.style.display='inline'; Codehighlighter1_1217_1267_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(pwd</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">||</span><span style="color: #000000">pwd</span><span style="color: #000000">==</span><span style="color: #000000">'')</span><span id="Codehighlighter1_1217_1267_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1217_1267_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcolor</span><span style="color: #000000">=</span><span style="color: #000000">Mcolor</span><span style="color: #000000">=</span><span style="color: #000000">Hcolor</span><span style="color: #000000">=</span><span style="color: #000000">O_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img id="Codehighlighter1_1282_1659_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1282_1659_Open_Text.style.display='none'; Codehighlighter1_1282_1659_Closed_Image.style.display='inline'; Codehighlighter1_1282_1659_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1282_1659_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1282_1659_Closed_Text.style.display='none'; Codehighlighter1_1282_1659_Open_Image.style.display='inline'; Codehighlighter1_1282_1659_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span id="Codehighlighter1_1282_1659_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1282_1659_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_level</span><span style="color: #000000">=</span><span style="color: #000000">checkStrong(pwd);&nbsp;<br />
<img id="Codehighlighter1_1344_1648_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1344_1648_Open_Text.style.display='none'; Codehighlighter1_1344_1648_Closed_Image.style.display='inline'; Codehighlighter1_1344_1648_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1344_1648_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1344_1648_Closed_Text.style.display='none'; Codehighlighter1_1344_1648_Open_Image.style.display='inline'; Codehighlighter1_1344_1648_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">(S_level)&nbsp;</span><span id="Codehighlighter1_1344_1648_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1344_1648_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcolor</span><span style="color: #000000">=</span><span style="color: #000000">Mcolor</span><span style="color: #000000">=</span><span style="color: #000000">Hcolor</span><span style="color: #000000">=</span><span style="color: #000000">O_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcolor</span><span style="color: #000000">=</span><span style="color: #000000">L_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mcolor</span><span style="color: #000000">=</span><span style="color: #000000">Hcolor</span><span style="color: #000000">=</span><span style="color: #000000">O_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcolor</span><span style="color: #000000">=</span><span style="color: #000000">Mcolor</span><span style="color: #000000">=</span><span style="color: #000000">M_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hcolor</span><span style="color: #000000">=</span><span style="color: #000000">O_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcolor</span><span style="color: #000000">=</span><span style="color: #000000">Mcolor</span><span style="color: #000000">=</span><span style="color: #000000">Hcolor</span><span style="color: #000000">=</span><span style="color: #000000">H_color;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">strength_L</span><span style="color: #000000">"</span><span style="color: #000000">).style.background</span><span style="color: #000000">=</span><span style="color: #000000">Lcolor;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">strength_M</span><span style="color: #000000">"</span><span style="color: #000000">).style.background</span><span style="color: #000000">=</span><span style="color: #000000">Mcolor;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">strength_H</span><span style="color: #000000">"</span><span style="color: #000000">).style.background</span><span style="color: #000000">=</span><span style="color: #000000">Hcolor;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;<br />
</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">=form1&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />输入密码:</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">=password&nbsp;</span><span style="color: #ff0000">size</span><span style="color: #0000ff">=10&nbsp;</span><span style="color: #ff0000">onKeyUp</span><span style="color: #0000ff">=pwStrength(this.value)&nbsp;</span><span style="color: #ff0000">onBlur</span><span style="color: #0000ff">=pwStrength(this.value)</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">密码强度:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">table&nbsp;</span><span style="color: #ff0000">width</span><span style="color: #0000ff">="217"</span><span style="color: #ff0000">&nbsp;border</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;cellspacing</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;cellpadding</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;bordercolor</span><span style="color: #0000ff">="#cccccc"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="23"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">='display:inline'</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;bgcolor</span><span style="color: #0000ff">="#eeeeee"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">width</span><span style="color: #0000ff">="33%"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="strength_L"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">弱</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">width</span><span style="color: #0000ff">="33%"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="strength_M"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">中</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">width</span><span style="color: #0000ff">="33%"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="strength_H"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">强</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span></div>
</div>
<img src ="http://www.blogjava.net/sy1214520/aggbug/243911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-12-02 13:24 <a href="http://www.blogjava.net/sy1214520/archive/2008/12/02/243911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>表格操作类(添加，删除，排序，上移，下移) </title><link>http://www.blogjava.net/sy1214520/archive/2008/12/02/243910.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Tue, 02 Dec 2008 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/12/02/243910.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/243910.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/12/02/243910.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/243910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/243910.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;html&gt;&nbsp;&lt;head&gt;&nbsp;&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;&lt;style&nbsp;type="text/css"&gt;*{}{font-size:14px}button{}{m...&nbsp;&nbsp;<a href='http://www.blogjava.net/sy1214520/archive/2008/12/02/243910.html'>阅读全文</a><img src ="http://www.blogjava.net/sy1214520/aggbug/243910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-12-02 13:21 <a href="http://www.blogjava.net/sy1214520/archive/2008/12/02/243910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文本框输入限制 </title><link>http://www.blogjava.net/sy1214520/archive/2008/12/02/243907.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Tue, 02 Dec 2008 05:17:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/12/02/243907.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/243907.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/12/02/243907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/243907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/243907.html</trackback:ping><description><![CDATA[<div class="postbody">
<p><span style="font-size: 12px">1上面的文本框只能输入数字代码(小数点也不能输入):</span></p>
<div class="altbg2" id="code0" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input&nbsp;&nbsp;onkeyup="this.value=this.value.replace(/\D/g,'')"&nbsp;&nbsp;onafterpaste="this.value=this.value.replace(/\D/g,'')"&gt;</div>
<p><span style="font-size: 12px">2只能输入数字,能输小数点.(注意汉字.用输入法和复制上面三个是有区别的在这里)</span></p>
<div class="altbg2" id="code1" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input&nbsp;&nbsp;onkeyup="if(isNaN(value))execCommand('undo')"&nbsp;&nbsp;onafterpaste="if(isNaN(value))execCommand('undo')"&gt;</div>
<span style="font-size: 12px">
<div class="altbg2" id="code2" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input&nbsp;&nbsp;name=txt1&nbsp;&nbsp;onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}"&gt;</div>
<div class="altbg2" id="code3" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"&gt;</div>
<p>3只能输入字母和汉字</p>
<div class="altbg2" id="code4" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers"&gt;</div>
<p>4只能输入英文字母和数字,不能输入中文</p>
<div class="altbg2" id="code5" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"&gt;</div>
<p>5只能输入数字和英文chun</p>
<div class="altbg2" id="code6" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input onKeyUp="value=value.replace(/[^\d|chun]/g,'')"&gt;</div>
<p>6小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:</p>
<div class="altbg2" id="code7" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input onKeyPress="if((event.keyCode&lt;48 || event.keyCode&gt;57) &amp;&amp; event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false"&gt;</div>
7小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号
<div class="altbg2" id="code8" style="clear: both; border-right: #ffffff 1px solid; padding-right: 10px; border-top: #ffffff 1px solid; padding-left: 10px; padding-bottom: 10px; margin: 3px 2em 2em; border-left: #ffffff 1px solid; word-break: break-all; padding-top: 5px; border-bottom: #ffffff 1px solid">&lt;input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"&gt;</div>
附:<br />
正则表达式用于字符串处理，表单验证等场合，实用高效，但用到时总是不太把握，以致往往要上网查一番。我将一些常用的表达式收藏在这里，作备忘之用。本贴随时会更新。<br />
<br />
匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />
<br />
匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />
<br />
应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）<br />
<br />
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}<br />
<br />
匹配空行的正则表达式：\n[\s| ]*\r<br />
<br />
匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/ <br />
<br />
匹配首尾空格的正则表达式：(^\s*)|(\s*$)<br />
<br />
应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：<br />
<br />
String.prototype.trim = function()<br />
{<br />
&nbsp; &nbsp; return this.replace(/(^\s*)|(\s*$)/g, "");<br />
}<br />
<br />
利用正则表达式分解和转换IP地址：<br />
<br />
下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的Javascript程序：<br />
<br />
function IP2V(ip)<br />
{<br />
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g&nbsp;&nbsp;//匹配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 />
}<br />
<br />
不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：<br />
<br />
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))<br />
<br />
匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />
<br />
匹配网址URL的正则表达式：http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?<br />
<br />
利用正则表达式去除字串中重复的字符的算法程序：[注：此程序不正确，原因见本贴回复]<br />
<br />
var s="abacabefgeeii"<br />
var s1=s.replace(/(.).*\1/g,"$1")<br />
var re=new RegExp("["+s1+"]","g"?琼?渦獢p?????浜睹扥潜桴牥摜極慢?瑨m?)<br />
var s2=s.replace(re,"") <br />
alert(s1+s2)&nbsp;&nbsp;//结果为：abcefgi<br />
<br />
我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。<br />
<br />
得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1<br />
<br />
s="http://www.9499.net/page1.htm"<br />
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")<br />
alert(s)<br />
<br />
利用正则表达式限制网页表单里的文本框输入内容：<br />
<br />
用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"<br />
<br />
用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"<br />
<br />
用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"<br />
<br />
用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"<br />
<br />
补充： <br />
^\d+$　　//匹配非负整数（正整数 + 0） <br />
^[0-9]*[1-9][0-9]*$　　//匹配正整数 <br />
^((-\d+)|(0+))$　　//匹配非正整数（负整数 + 0） <br />
^-[0-9]*[1-9][0-9]*$　　//匹配负整数 <br />
^-?\d+$　　　　//匹配整数 <br />
^\d+(\.\d+)?$　　//匹配非负浮点数（正浮点数 + 0） <br />
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$　　//匹配正浮点数 <br />
^((-\d+(\.\d+)?)|(0+(\.0+)?))$　　//匹配非正浮点数（负浮点数 + 0） <br />
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$　　//匹配负浮点数 <br />
^(-?\d+)(\.\d+)?$　　//匹配浮点数 <br />
^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串 <br />
^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串 <br />
^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串 <br />
^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串 <br />
^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串 <br />
^[\w-]+(\.[\w?琼?渦獢p?????浜睹扥潜桴牥摜極慢?瑨m?-]+)*@[\w-]+(\.[\w-]+)+$　　　　//匹配email地址 <br />
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$　　//匹配url <br />
<br />
<br />
利用正则表达式去除字串中重复的字符的算法程序： <br />
<br />
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 <br />
=============================== <br />
如果var s = "abacabefggeeii" <br />
结果就不对了，结果为：abeicfgg <br />
正则表达式的能力有限</span> </div>
<img src ="http://www.blogjava.net/sy1214520/aggbug/243907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-12-02 13:17 <a href="http://www.blogjava.net/sy1214520/archive/2008/12/02/243907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript 操作select控件大全（新增、修改、删除、选中、清空、判断存在等） </title><link>http://www.blogjava.net/sy1214520/archive/2008/12/02/243869.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Tue, 02 Dec 2008 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/12/02/243869.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/243869.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/12/02/243869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/243869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/243869.html</trackback:ping><description><![CDATA[<div class="postbody">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">判断select选项中&nbsp;是否存在Value="paraValue"的Item&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />向select选项中&nbsp;加入一个Item&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />从select选项中&nbsp;删除一个Item&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />删除select中选中的项&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />修改select选项中&nbsp;value="paraValue"的text为"paraText"&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />设置select中text="paraText"的第一个Item为选中&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />设置select中value="paraValue"的Item为选中&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />得到select的当前选中项的value&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />得到select的当前选中项的text&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />得到select的当前选中项的Index&nbsp;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />清空select的项&nbsp;</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">js&nbsp;代码<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;1.判断select选项中&nbsp;是否存在Value="paraValue"的Item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_111_405_Open_Image" onclick="this.style.display='none'; Codehighlighter1_111_405_Open_Text.style.display='none'; Codehighlighter1_111_405_Closed_Image.style.display='inline'; Codehighlighter1_111_405_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsSelectIsExitItem(objSelect,&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_111_405_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;isExit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_208_368_Open_Image" onclick="this.style.display='none'; Codehighlighter1_208_368_Open_Text.style.display='none'; Codehighlighter1_208_368_Closed_Image.style.display='inline'; Codehighlighter1_208_368_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;objSelect.options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_208_368_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_274_354_Open_Image" onclick="this.style.display='none'; Codehighlighter1_274_354_Open_Text.style.display='none'; Codehighlighter1_274_354_Closed_Image.style.display='inline'; Codehighlighter1_274_354_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(objSelect.options[i].value&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_274_354_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isExit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;isExit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;2.向select选项中&nbsp;加入一个Item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_518_830_Open_Image" onclick="this.style.display='none'; Codehighlighter1_518_830_Open_Text.style.display='none'; Codehighlighter1_518_830_Closed_Image.style.display='inline'; Codehighlighter1_518_830_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsAddItemToSelect(objSelect,&nbsp;objItemText,&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_518_830_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_602_659_Open_Image" onclick="this.style.display='none'; Codehighlighter1_602_659_Open_Text.style.display='none'; Codehighlighter1_602_659_Closed_Image.style.display='inline'; Codehighlighter1_602_659_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(jsSelectIsExitItem(objSelect,&nbsp;objItemValue))&nbsp;</span><span id="Codehighlighter1_602_659_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">该Item的Value值已经存在</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_666_820_Open_Image" onclick="this.style.display='none'; Codehighlighter1_666_820_Open_Text.style.display='none'; Codehighlighter1_666_820_Closed_Image.style.display='inline'; Codehighlighter1_666_820_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_666_820_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;varItem&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Option(objItemText,&nbsp;objItemValue);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSelect.options.add(varItem);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">成功加入</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;3.从select选项中&nbsp;删除一个Item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_934_1398_Open_Image" onclick="this.style.display='none'; Codehighlighter1_934_1398_Open_Text.style.display='none'; Codehighlighter1_934_1398_Closed_Image.style.display='inline'; Codehighlighter1_934_1398_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsRemoveItemFromSelect(objSelect,&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_934_1398_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1018_1326_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1018_1326_Open_Text.style.display='none'; Codehighlighter1_1018_1326_Closed_Image.style.display='inline'; Codehighlighter1_1018_1326_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(jsSelectIsExitItem(objSelect,&nbsp;objItemValue))&nbsp;</span><span id="Codehighlighter1_1018_1326_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1087_1281_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1087_1281_Open_Text.style.display='none'; Codehighlighter1_1087_1281_Closed_Image.style.display='inline'; Codehighlighter1_1087_1281_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;objSelect.options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1087_1281_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1157_1263_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1157_1263_Open_Text.style.display='none'; Codehighlighter1_1157_1263_Closed_Image.style.display='inline'; Codehighlighter1_1157_1263_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(objSelect.options[i].value&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_1157_1263_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSelect.options.remove(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">成功删除</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1333_1388_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1333_1388_Open_Text.style.display='none'; Codehighlighter1_1333_1388_Closed_Image.style.display='inline'; Codehighlighter1_1333_1388_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_1333_1388_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">该select中&nbsp;不存在该项</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;4.删除select中选中的项&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1486_1705_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1486_1705_Open_Text.style.display='none'; Codehighlighter1_1486_1705_Closed_Image.style.display='inline'; Codehighlighter1_1486_1705_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsRemoveSelectedItemFromSelect(objSelect)&nbsp;</span><span id="Codehighlighter1_1486_1705_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;length&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;objSelect.options.length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1583_1699_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1583_1699_Open_Text.style.display='none'; Codehighlighter1_1583_1699_Closed_Image.style.display='inline'; Codehighlighter1_1583_1699_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;length;&nbsp;i&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">--</span><span style="color: #000000">)</span><span id="Codehighlighter1_1583_1699_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1630_1689_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1630_1689_Open_Text.style.display='none'; Codehighlighter1_1630_1689_Closed_Image.style.display='inline'; Codehighlighter1_1630_1689_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(objSelect[i].selected&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">)</span><span id="Codehighlighter1_1630_1689_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSelect.options[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;5.修改select选项中&nbsp;value="paraValue"的text为"paraText"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1844_2320_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1844_2320_Open_Text.style.display='none'; Codehighlighter1_1844_2320_Closed_Image.style.display='inline'; Codehighlighter1_1844_2320_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsUpdateItemToSelect(objSelect,&nbsp;objItemText,&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_1844_2320_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1928_2248_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1928_2248_Open_Text.style.display='none'; Codehighlighter1_1928_2248_Closed_Image.style.display='inline'; Codehighlighter1_1928_2248_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(jsSelectIsExitItem(objSelect,&nbsp;objItemValue))&nbsp;</span><span id="Codehighlighter1_1928_2248_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1997_2203_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1997_2203_Open_Text.style.display='none'; Codehighlighter1_1997_2203_Closed_Image.style.display='inline'; Codehighlighter1_1997_2203_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;objSelect.options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1997_2203_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2067_2185_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2067_2185_Open_Text.style.display='none'; Codehighlighter1_2067_2185_Closed_Image.style.display='inline'; Codehighlighter1_2067_2185_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(objSelect.options[i].value&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;objItemValue)&nbsp;</span><span id="Codehighlighter1_2067_2185_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSelect.options[i].text&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;objItemText;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">成功修改</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2255_2310_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2255_2310_Open_Text.style.display='none'; Codehighlighter1_2255_2310_Closed_Image.style.display='inline'; Codehighlighter1_2255_2310_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2255_2310_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">该select中&nbsp;不存在该项</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;6.设置select中text="paraText"的第一个Item为选中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2436_2945_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2436_2945_Open_Text.style.display='none'; Codehighlighter1_2436_2945_Closed_Image.style.display='inline'; Codehighlighter1_2436_2945_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;jsSelectItemByValue(objSelect,&nbsp;objItemText)&nbsp;</span><span id="Codehighlighter1_2436_2945_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;isExit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2558_2774_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2558_2774_Open_Text.style.display='none'; Codehighlighter1_2558_2774_Closed_Image.style.display='inline'; Codehighlighter1_2558_2774_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;objSelect.options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_2558_2774_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2622_2760_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2622_2760_Open_Text.style.display='none'; Codehighlighter1_2622_2760_Closed_Image.style.display='inline'; Codehighlighter1_2622_2760_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(objSelect.options[i].text&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;objItemText)&nbsp;</span><span id="Codehighlighter1_2622_2760_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSelect.options[i].selected&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isExit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">Show出结果&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2828_2873_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2828_2873_Open_Text.style.display='none'; Codehighlighter1_2828_2873_Closed_Image.style.display='inline'; Codehighlighter1_2828_2873_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(isExit)&nbsp;</span><span id="Codehighlighter1_2828_2873_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">成功选中</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2880_2935_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2880_2935_Open_Text.style.display='none'; Codehighlighter1_2880_2935_Closed_Image.style.display='inline'; Codehighlighter1_2880_2935_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2880_2935_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">该select中&nbsp;不存在该项</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;7.设置select中value="paraValue"的Item为选中&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">document.all.objSelect.value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;objItemValue;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;8.得到select的当前选中项的value&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;currSelectValue&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.all.objSelect.value;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;9.得到select的当前选中项的text&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;currSelectText&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.all.objSelect.options[document.all.objSelect.selectedIndex].text;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;10.得到select的当前选中项的Index&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;currSelectIndex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.all.objSelect.selectedIndex;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;11.清空select的项&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">document.all.objSelect.options.length&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</div>
<img src ="http://www.blogjava.net/sy1214520/aggbug/243869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-12-02 10:57 <a href="http://www.blogjava.net/sy1214520/archive/2008/12/02/243869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j使用方法收藏</title><link>http://www.blogjava.net/sy1214520/archive/2008/11/10/239764.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Mon, 10 Nov 2008 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/11/10/239764.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/239764.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/11/10/239764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/239764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/239764.html</trackback:ping><description><![CDATA[<p>为什么要用日志（Log）?<br />
这个&#8230;&#8230;就不必说了吧。</p>
<p>为什么不用System.out.println()?<br />
功能太弱；不易于控制。如果暂时不想输出了怎么办？如果想输出到文件怎么办？如果想部分输出怎么办？&#8230;&#8230;</p>
<p>为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一？<br />
Commons-loggin的目的是为&#8220;所有的Java日志实现&#8221;提供一个统一的接口，它自身的日志功能平常弱（只有一个简单的SimpleLog?），所以一般不会单独使用它。</p>
<p>Log4j的功能非常全面强大，是目前的首选。我发现几乎所有的Java开源项目都会用到Log4j，但我同时发现，所有用到Log4j的项目一般也同时会用到commons-loggin。我想，大家都不希望自己的项目与Log4j绑定的太紧密吧。另外一个我能想到的&#8220;同时使用commons-logging和Log4j&#8221;的原因是，简化使用和配置。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 强调一点，&#8220;同时使用commons-logging和Log4j&#8221;，与&#8220;单独使用Log4j&#8221;相比，并不会带来更大的学习、配置和维护成本，反而更加简化了我们的工作。我想这也是为什么&#8220;所有用到Log4j的项目一般也同时会用到commons-loggin&#8221;的原因之一吧。</p>
<p><br />
&nbsp;</p>
<p><br />
Commons-logging能帮我们做什么？<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提供一个统一的日志接口，简单了操作，同时避免项目与某个日志实现系统紧密a耦合</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很贴心的帮我们自动选择适当的日志实现系统（这一点非常好！）</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 它甚至不需要配置</p>
<p><br />
&nbsp;</p>
<p><br />
这里看一下它怎么&#8220;&#8216;很贴心的&#8217;帮我们&#8216;自动选择&#8217;&#8216;适当的&#8217;日志实现系统&#8221;：</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先在classpath下寻找自己的配置文件commons-logging.properties，如果找到，则使用其中定义的Log实现类；</p>
<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果找不到commons-logging.properties文件，则在查找是否已定义系统环境变量org.apache.commons.logging.Log，找到则使用其定义的Log实现类；</p>
<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 否则，查看classpath中是否有Log4j的包，如果发现，则自动使用Log4j作为日志实现类；</p>
<p>4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 否则，使用JDK自身的日志实现类（JDK1.4以后才有日志实现类）；</p>
<p>5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 否则，使用commons-logging自己提供的一个简单的日志实现类SimpleLog；</p>
<p>（以上顺序不保证完全准确，请参考官方文档）</p>
<p><br />
&nbsp;</p>
<p><br />
可见，commons-logging总是能找到一个日志实现类，并且尽可能找到一个&#8220;最合适&#8221;的日志实现类。我说它&#8220;很贴心&#8221;实际上是因为：1、可以不需要配置文件；2、自动判断有没有Log4j包，有则自动使用之；3、最悲观的情况下也总能保证提供一个日志实现（SimpleLog）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以看到，commons-logging对编程者和Log4j都非常友好。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了简化配置commons-logging，一般不使用commons-logging的配置文件，也不设置与commons-logging相关的系统环境变量，而只需将Log4j的Jar包放置到classpash中就可以了。这样就很简单地完成了commons-logging与Log4j的融合。如果不想用Log4j了怎么办？只需将classpath中的Log4j的Jar包删除即可。</p>
<p>就这么简单！</p>
<p>代码应该怎么写？<br />
我们在需要输出日志信息的&#8220;每一人&#8221;类中做如下的三个工作：</p>
<p>1、导入所有需的commongs-logging类：</p>
<p>import org.apache.commons.logging.Log;</p>
<p>&nbsp;</p>
<p>import org.apache.commons.logging.LogFactory;</p>
<p>&nbsp;</p>
<p>如果愿意简化的话，还可以两行合为一行：</p>
<p>import org.apache.commons.logging.*;</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<p><br />
2、在自己的类中定义一个org.apache.commons.logging.Log类的私有静态类成员：</p>
<p>private static Log log = LogFactory.getLog(YouClassName.class);</p>
<p>&nbsp;</p>
<p>注意这里定义的是static成员，以避免产生多个实例。</p>
<p>LogFactory.getLog()方法的参数使用的是当前类的class，这是目前被普通认为的最好的方式。为什么不写作LogFactory.getLog(this.getClass())？因为static类成员访问不到this指针！</p>
<p><br />
&nbsp;</p>
<p><br />
3、使用org.apache.commons.logging.Log类的成员方法输出日志信息：</p>
<p>log.debug("111");</p>
<p>&nbsp;</p>
<p>log.info("222");</p>
<p>&nbsp;</p>
<p>log.warn("333");</p>
<p>&nbsp;</p>
<p>log.error("444");</p>
<p>&nbsp;</p>
<p>log.fatal("555");</p>
<p>&nbsp;</p>
<p>这里的log，就是上面第二步中定义的类成员变量，其类型是org.apache.commons.logging.Log，通过该类的成员方法，我们就可以将不同性质的日志信息输出到目的地（目的地是哪里？视配置可定，可能是stdout，也可能是文件，还可能是发送到邮件，甚至发送短信到手机&#8230;&#8230;详见下文对log4j.properties的介绍）：</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug()&nbsp;&nbsp; 输出&#8220;调试&#8221;级别的日志信息；</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输出&#8220;信息&#8221;级别的日志信息；</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; warn()&nbsp;&nbsp;&nbsp; 输出&#8220;警告&#8221;级别的日志信息；</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error()&nbsp;&nbsp;&nbsp;&nbsp; 输出&#8220;错误&#8221;级别的日志信息；</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fatal()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输出&#8220;致命错误&#8221;级别的日志信息；</p>
<p>根据不同的性质，日志信息通常被分成不同的级别，从低到高依次是：&#8220;调试（DEBUG）&#8221;&#8220;信息（INFO）&#8221;&#8220;警告（WARN）&#8221;&#8220;错误（ERROR）&#8221;&#8220;致命错误（FATAL）&#8221;。为什么要把日志信息分成不同的级别呢？这实际上是方便我们更好的控制它。比如，通过Log4j的配置文件，我们可以设置&#8220;输出&#8216;调试&#8217;及以上级别的日志信息&#8221;（即&#8220;调试&#8221;&#8220;信息&#8221;&#8220;警告&#8221;&#8220;错误&#8221;&#8220;致命错误&#8221;），这对项目开发人员可能是有用的；我们还可以设置&#8220;输出&#8220;警告&#8221;及以上级别的日志信息&#8221;（即&#8220;警告&#8221;&#8220;错误&#8221;&#8220;致命错误&#8221;），这对项目最终用户可能是有用的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 仅从字面上理解，也可以大致得出结论：最常用的应该是debug()和info()；而warn()、error()、fatal()仅在相应事件发生后才使用。</p>
<p>&nbsp;</p>
<p><br />
从上面三个步骤可以看出，使用commons-logging的日志接口非常的简单，不需要记忆太多东西：仅仅用到了两个类Log, LogFactory，并且两个类的方法都非常少（后者只用到一个方法，前者经常用到的也只是上面第三步中列出的几个），同时参数又非常简单。</p>
<p>上面所介绍的方法是目前被普通应用的，可以说是被标准化了的方法，几乎所有的人都是这么用。如果不信，或想确认一下，就去下载几个知名的Java开源项目源代码看一下吧。</p>
<p><br />
下面给出一个完整的Java类的代码：</p>
<p><br />
package liigo.testlog;<br />
&nbsp;</p>
<p><br />
import org.apache.commons.logging.Log;</p>
<p>import org.apache.commons.logging.LogFactory;</p>
<p><br />
public class TestLog</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp; private static Log log = LogFactory.getLog(TestLog.class);<br />
&nbsp;&nbsp;&nbsp; public void test()</p>
<p>&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("111");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("222");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.warn("333");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("444");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.fatal("555");</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;</p>
<p><br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TestLog testLog = new TestLog();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testLog.test();</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p>&nbsp;</p>
<p><br />
只要保证commons-logging的jar包在classpath中，上述代码肯定可以很顺利的编译通过。那它的执行结果是怎么样的呢？恐怕会有很大的不同，请继续往下看。</p>
<p><br />
Log4j在哪里呢？它发挥作用了吗？<br />
应该注意到，我们上面给出的源代码，完全没有涉及到Log4j——这正是我们所希望的，这也正是commons-logging所要达到的目标之一。</p>
<p>可是，怎么才能让Log4j发挥它的作用呢？答案很简单，只需满足&#8220;classpath中有Log4j的jar包&#8221;。前面已经说过了，commons-logging会自动发现并应用Log4j。所以只要它存在，它就发挥作用。（它不存在呢？自然就不发挥作用，commons-logging会另行选择其它的日志实现类。）</p>
<p>&nbsp;</p>
<p><br />
注意：配置文件log4j.properties对Log4j来说是必须的。如果classpath中没有该配置文件，或者配置不对，将会引发运行时异常。</p>
<p><br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样，要正确地应用Log4j输出日志信息，log4j.properties的作用就很重要了。好在该文件有通用的模板，复制一份（稍加修改）就可以使用。几乎每一个Java项目目录内都会有一个log4j.properties文件，可下载几个Java开源项目源代码查看。本文最后也附一个模板性质的log4j.properties文件，直接复制过去就可以用，或者根据自己的需要稍加修改。后文将会log4j.properties文件适当作一些介绍。</p>
<p><br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里顺便提示一点：如果不用commons-logging，仅仅单独使用Log4j，操作上反而要稍微麻烦一些，因为Log4j需要多一点点的初始化代码（相比commons-logging而言）：</p>
<p>import org.apache.log4j.Logger;</p>
<p>&nbsp;</p>
<p>import org.apache.log4j.PropertyConfigurator;</p>
<p>&nbsp;</p>
<p>public class TestLog4j {</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; static Logger logger = Logger.getLogger(TestLog4j.class); //First step</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; public static void main(String args[]) {</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyConfigurator.configure("log4j.properties"); //Second step</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.debug("Here is some DEBUG"); //Third step</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.info("Here is some INFO");</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.warn("Here is some WARN");</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.error("Here is some ERROR");</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.fatal("Here is some FATAL");</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>}</p>
<p>不过也就多出一行。但这至少说明，引用commons-logging并没有使问题复杂化，反而简单了一些。在这里1+1就小于2了。这也验证了前面的结论。</p>
<p>总结<br />
将commons-logging和Log4j的jar包都放置到classpath下，同时也将Log4j的配置文件放到classpath中，两者就可以很好的合作。</p>
<p><br />
采用Log4j配合commons-logging作为日志系统，是目前Java领域非常非常流行的模式，使用非常非常的普遍。两者的结合带来的结果就是：简单 + 强大。</p>
<p>commons-logging提供了简捷、统一的接口，不需要额外配置，简单；</p>
<p>Log4j功能非常全面、强大；</p>
<p>commons-logging仅仅对Log4j(当然还包括其它LOG实现)作了一层包装，具体的日志输出还是在内部转交给身后的Log4j来处理；而Log4j虽然做了所有的事情，却甘作绿叶，从不以真身示人。</p>
<p>两者堪称绝配。</p>
<p><br />
对log4j.properties的一点介绍<br />
下面对log4j.properties文件内容作一点点介绍，以后文所附log4j.properties文件为例：</p>
<p>除去以#开头的注释以及空行，第一行有用的内容是：</p>
<p>log4j.rootLogger = DEBUG, CONSOLE,A1</p>
<p>log4j.rootLogger是最最重要的一个属性了，它定义日志信息的&#8220;输出级别&#8221;和&#8220;输出目的地&#8221;。</p>
<p>关键看&#8220;=&#8221;后面的值，&#8220;DEBUG, CONSOLE,A1&#8221;这里我们要把它分成两部分：第一个逗号之前的是第一部分，指定&#8220;输出级别&#8221;；后面的是第二部分，指定&#8220;输出目的地&#8221;。可以同时指定多个&#8220;输出目的地&#8221;，以逗号隔开。</p>
<p>具体到上面这一行：它指定的&#8220;输出级别&#8221;是&#8220;DEBUG&#8221;；它指定的&#8220;输出目的地&#8221;是&#8220;CONSOLE&#8221;和&#8220;A1&#8221;。</p>
<p>注意：</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;输出级别&#8221;有可选的五个值，分别是DEBUG、INFO、WARN、ERROR、FATAL，它们是由Log4j系统定义的。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;输出目的地&#8221;就是我们自己定义的了，就在log4j.properties的后面部分，此文件定义的&#8220;输出目的地&#8221;有CONSOLE、FILE、ROLLING_FILE、SOCKET、LF5_APPENDER、MAIL、DATABASE、A1、im。该文件之所以可作主模板，就是因为它比较全面地定义了各种常见的输出目的地（控制台、文件、电子邮件、数据库等）。</p>
<p>好，下面详细解释&#8220;log4j.rootLogger=DEBUG, CONSOLE,A1&#8221;这一行：</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定&#8220;输出级别&#8221;是&#8220;DEBUG&#8221;，即，仅输出级别大于等于&#8220;调试（DEBUG）&#8221;的日志信息。如果此处指定的是&#8220;WARN&#8221;则仅调用warn()、error()、fatal()方法输出的日志信息才被输出到&#8220;输出目的地&#8221;，而调用debug()、info()方法输出的日志信息不被输出到&#8220;输出目的地&#8221;。明白了吗？Log4j就是以这种方式来过滤控制日志信息的输出与否，这也是对日志信息进行级别分类的目的。</p>
<p>&nbsp;</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定&#8220;输出目的地&#8221;是&#8220;CONSOLE&#8221;和&#8220;A1&#8221;，即，将指定的日志信息（根据日志级别已进行了过滤）同时输出到的&#8220;控制台&#8221;和&#8220;SampleMessages.log4j文件&#8221;。</p>
<p><br />
为什么说&#8220;CONSOLE&#8221;表示将日志信息输出到&#8220;控制台&#8221;呢？那就要看一下后文的定义了：</p>
<p># 应用于控制台 </p>
<p>&nbsp;</p>
<p>log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender </p>
<p>&nbsp;</p>
<p>log4j.appender.Threshold=DEBUG </p>
<p>&nbsp;</p>
<p>log4j.appender.CONSOLE.Target=System.out </p>
<p>&nbsp;</p>
<p>log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout </p>
<p>&nbsp;</p>
<p>log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p>#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n </p>
<p><br />
为什么说&#8220;A1&#8221;表示将日志信息输出到&#8220;SampleMessages.log4j文件&#8221;呢？还要看后文的定义：</p>
<p>&nbsp;</p>
<p>log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender </p>
<p>log4j.appender.A1.File=SampleMessages.log4j </p>
<p>&nbsp;</p>
<p>log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' </p>
<p>&nbsp;</p>
<p>log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout </p>
<p>&nbsp;</p>
<p>注意：这里的定义没有指定输出文件的路径，它的路径实际上是 java.user.path的值。<br />
&nbsp;</p>
<p><br />
您应该已经注意到，在定义&#8220;输出目的地&#8221;时，还可以指定日志格式、时间、布局等相关信息。略过。</p>
<p><br />
好了，我可以根据需要，将这一行修改为：</p>
<p>log4j.rootLogger = ERROR, CONSOLE,FILE,MAIL</p>
<p>&nbsp;</p>
<p>将&#8220;错误（ERROR）&#8221;及&#8220;致命错误（FATAL）&#8221;级别的日志信息同时输出到控制台、文件，并且发电子邮件向系统管理员报告。是不是很爽？（如果将&#8220;调试（DEBUG）&#8221;级别的日志信息邮件给管理员，恐怕迟早会把他/她的邮箱涨爆，哪怕用的是Gmail！再次理解了&#8220;将日志信息分为不同级别&#8221;的意图了吧？）</p>
<p>&nbsp;</p>
<p><br />
附：一个有用的log4j.properties文件模板<br />
##Log4J的配置之简单使它遍及于越来越多的应用中了</p>
<p>##Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了。</p>
<p>##此文件（log4j.properties）内容来自网络，非本文作者liigo原创。</p>
<p><br />
log4j.rootLogger=DEBUG, CONSOLE,A1</p>
<p>log4j.addivity.org.apache=true </p>
<p>&nbsp;</p>
<p><br />
# 应用于控制台 </p>
<p><br />
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender </p>
<p>log4j.appender.Threshold=DEBUG </p>
<p>log4j.appender.CONSOLE.Target=System.out </p>
<p>log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p>#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n </p>
<p>&nbsp;</p>
<p><br />
#应用于文件 </p>
<p><br />
&nbsp;<br />
log4j.appender.FILE=org.apache.log4j.FileAppender </p>
<p>log4j.appender.FILE.File=file.log </p>
<p>log4j.appender.FILE.Append=false </p>
<p>log4j.appender.FILE.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p># Use this layout for LogFactor 5 analysis </p>
<p><br />
# 应用于文件回滚 </p>
<p><br />
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender </p>
<p>log4j.appender.ROLLING_FILE.Threshold=ERROR </p>
<p>log4j.appender.ROLLING_FILE.File=rolling.log </p>
<p>log4j.appender.ROLLING_FILE.Append=true </p>
<p>log4j.appender.ROLLING_FILE.MaxFileSize=10KB </p>
<p>log4j.appender.ROLLING_FILE.MaxBackupIndex=1 </p>
<p>log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p><br />
#应用于socket </p>
<p>log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender </p>
<p>log4j.appender.SOCKET.RemoteHost=localhost </p>
<p>log4j.appender.SOCKET.Port=5001 </p>
<p>log4j.appender.SOCKET.LocationInfo=true </p>
<p># Set up for Log Facter 5 </p>
<p>log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n </p>
<p><br />
# Log Factor 5 Appender </p>
<p>log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender </p>
<p>log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 </p>
<p><br />
# 发送日志给邮件 </p>
<p><br />
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender </p>
<p>log4j.appender.MAIL.Threshold=FATAL </p>
<p>log4j.appender.MAIL.BufferSize=10 </p>
<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#70;&#114;&#111;&#109;&#61;&#119;&#101;&#98;&#64;&#119;&#119;&#119;&#46;&#119;&#117;&#115;&#101;&#116;&#46;&#99;&#111;&#109;">log4j.appender.MAIL.From=web@www.wuset.com</a> </p>
<p>log4j.appender.MAIL.SMTPHost=www.wusetu.com </p>
<p>log4j.appender.MAIL.Subject=Log4J Message </p>
<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#84;&#111;&#61;&#119;&#101;&#98;&#64;&#119;&#119;&#119;&#46;&#119;&#117;&#115;&#101;&#116;&#117;&#46;&#99;&#111;&#109;">log4j.appender.MAIL.To=web@www.wusetu.com</a> </p>
<p>log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p><br />
# 用于数据库 </p>
<p>log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender </p>
<p>log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test </p>
<p>log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver </p>
<p>log4j.appender.DATABASE.user=root </p>
<p>log4j.appender.DATABASE.password= </p>
<p>log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') </p>
<p>log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p><br />
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender </p>
<p>log4j.appender.A1.File=SampleMessages.log4j </p>
<p>log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' </p>
<p>log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout </p>
<p><br />
#自定义Appender </p>
<p><br />
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender </p>
<p><br />
log4j.appender.im.host = mail.cybercorlin.net </p>
<p>log4j.appender.im.username = username </p>
<p>log4j.appender.im.password = password </p>
<p>log4j.appender.im.recipient = <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#114;&#108;&#105;&#110;&#64;&#99;&#121;&#98;&#101;&#114;&#99;&#111;&#114;&#108;&#105;&#110;&#46;&#110;&#101;&#116;">corlin@cybercorlin.net</a> </p>
<p><br />
log4j.appender.im.layout=org.apache.log4j.PatternLayout </p>
<p>log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<p><br />
# 结束</p>
<img src ="http://www.blogjava.net/sy1214520/aggbug/239764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-11-10 23:47 <a href="http://www.blogjava.net/sy1214520/archive/2008/11/10/239764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据库的常用函数列表快速查收藏</title><link>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Mon, 10 Nov 2008 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/239763.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/239763.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/239763.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<table cellspacing="1" cellpadding="5" width="670" align="center" bgcolor="#4d9da6" border="0">
    <tbody>
        <tr>
            <td valign="top" bgcolor="#efefef" height="200">
            <p style="text-indent: 2em">函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数，这些函数都可被称为SQL或PL/SQL语句，函数主要分为两大类： </p>
            <p style="text-indent: 2em">单行函数、组函数 </p>
            <p style="text-indent: 2em">本文将讨论如何利用单行函数以及使用规则。 </p>
            <p style="text-indent: 2em"><strong>SQL中的单行函数</strong> </p>
            <p style="text-indent: 2em">SQL和PL/SQL中自带很多类型的函数，有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据，因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY等子句中，例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere
                        UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename)</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">单行函数也可以在其他语句中使用，如update的SET子句，INSERT的VALUES子句，DELET的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数，所以我们的注意力也集中在SELECT语句中。 </p>
            <p style="text-indent: 2em"><strong>NULL和单行函数</strong> </p>
            <p style="text-indent: 2em">在如何理解NULL上开始是很困难的，就算是一个很有经验的人依然对此感到困惑。NULL值表示一个未知数据或者一个空值，算术操作符的任何一个操作数为NULL值，结果均为提个NULL值,这个规则也适合很多函数，只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。在这些中NVL函数时最重要的，因为他能直接处理NULL值，NVL有两个参数：NVL(x1,x2),x1和x2都式表达式，当x1为null时返回X2,否则返回x1。 </p>
            <p style="text-indent: 2em">下面我们看看emp数据表它包含了薪水、奖金两项，需要计算总的补偿 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>column name emp_id salary bonuskey type pk nulls/unique nn,
                        u nnfk table datatype number number numberlength 11.2 11.2</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">不是简单的将薪水和奖金加起来就可以了，如果某一行是null值那么结果就将是null，比如下面的例子： </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>update empset salary=(salary+bonus)*1.1</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">这个语句中，雇员的工资和奖金都将更新为一个新的值，但是如果没有奖金，即 salary + null,那么就会得出错误的结论，这个时候就要使用nvl函数来排除null值的影响。 </p>
            <p style="text-indent: 2em">所以正确的语句是： </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>update empset salary=(salary+nvl(bonus,0)*1.1</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em"><strong>单行字符串函数</strong> </p>
            <p style="text-indent: 2em">单行字符串函数用于操作字符串数据，他们大多数有一个或多个参数，其中绝大多数返回字符串 </p>
            <p style="text-indent: 2em">ASCII() </p>
            <p style="text-indent: 2em">c1是一字符串，返回c1第一个字母的ASCII码，他的逆函数是CHR() </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">CHR(＜i＞)[NCHAR_CS] </p>
            <p style="text-indent: 2em">i是一个数字，函数返回十进制表示的字符 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" borderco