??xml version="1.0" encoding="utf-8" standalone="yes"?>www在线播放,九色综合日本,高清一区二区三区四区五区http://www.aygfsteel.com/pdw2009/category/7807.htmlJ2EE相关应用技术日?/description>zh-cnThu, 11 Oct 2007 16:12:09 GMTThu, 11 Oct 2007 16:12:09 GMT60prototypejs最好的学习资料http://www.aygfsteel.com/pdw2009/archive/2007/09/26/148468.html有猫怼的日?/dc:creator>有猫怼的日?/author>Wed, 26 Sep 2007 15:46:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2007/09/26/148468.htmlhttp://www.aygfsteel.com/pdw2009/comments/148468.htmlhttp://www.aygfsteel.com/pdw2009/archive/2007/09/26/148468.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/148468.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/148468.html
 q是中文版教E?br /> http://www.prototypejs.org/
官方|站

]]>
js正则表达?/title><link>http://www.aygfsteel.com/pdw2009/archive/2007/04/09/109402.html</link><dc:creator>有猫怼的日?/dc:creator><author>有猫怼的日?/author><pubDate>Mon, 09 Apr 2007 07:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/pdw2009/archive/2007/04/09/109402.html</guid><wfw:comment>http://www.aygfsteel.com/pdw2009/comments/109402.html</wfw:comment><comments>http://www.aygfsteel.com/pdw2009/archive/2007/04/09/109402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pdw2009/comments/commentRss/109402.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pdw2009/services/trackbacks/109402.html</trackback:ping><description><![CDATA[<font style="FONT-FAMILY: Arial" face=黑体 size=4><strong>一、正则表辑ּ是什么?Z么要用正则表辑ּQ?br></strong><span style="FONT-SIZE: 12pt; FONT-FAMILY: Arial">1Q数据格式的有效性验证:你可是已l?见识q了?br>2Q文本替换:文本~辑器你应该见识多了Q哪个里面没有搜索和替换功能呢?如果你用q这些,那末Q你已经是正则表辑ּ的受益者了?br>3Q提取字W串Q没有他Q据说搜索引擎都不工作。呵c?br></span><font size=3><strong>正则表达式中的特D字W?/strong> </font><br><font face=宋体>/.../Q代表一个模式的开始和l束?br>^Q用来匹配输入字W串的开始。(定位W)<br>$Q用来匹配输入字W串的结束。(定位W)<br>:是个转义字符Qd׃表匹配一个数字。(不会不知道{义吧Q)<br>{n}Q代表前边子模式匚w的次数。(限定W)<br> <table cellSpacing=1 cellPadding=3 width="100%" bgColor=#ffffff> <tbody> <tr align=middle bgColor=#ccccff> <td>字符 </td> <td>含意 </td> </tr> <tr bgColor=#dfdfdf> <td>\</td> <td> <p>做ؓ转意Q即通常?\"后面的字W不按原来意义解释,?b/匚w字符"b"Q当b前面加了反斜杆后/\b/Q{意ؓ匚w一个单词的边界?<br>-? <br>Ҏ则表辑ּ功能字符的还原,?*"匚w它前面元字符0ơ或多次Q?a*/匹配a,aa,aaaQ加?\"后,/a\*/只匚w"a*"?</p> </td> </tr> <tr> <td>^ </td> <td>匚w一个输入或一行的开_/^a/匚w"an A"Q而不匚w"An a" </td> </tr> <tr bgColor=#dfdfdf> <td>$ </td> <td>匚w一个输入或一行的l尾Q?a$/匚w"An a"Q而不匚w"an A" </td> </tr> <tr> <td>* </td> <td>匚w前面元字W?ơ或多次Q?ba*/匹配b,ba,baa,baaa </td> </tr> <tr bgColor=#dfdfdf> <td>+ </td> <td>匚w前面元字W?ơ或多次Q?ba*/匹配ba,baa,baaa </td> </tr> <tr> <td>? </td> <td>匚w前面元字W?ơ或1ơ,/ba*/匹配b,ba </td> </tr> <tr bgColor=#dfdfdf> <td>(x) </td> <td>匚wx保存x在名?1...$9的变量中 </td> </tr> <tr> <td>x|y </td> <td>匚wx或y </td> </tr> <tr bgColor=#dfdfdf> <td>{n} </td> <td>_匚wn?</td> </tr> <tr> <td>{n,} </td> <td>匚wnơ以?</td> </tr> <tr bgColor=#dfdfdf> <td>{n,m} </td> <td>匚wn-m?</td> </tr> <tr> <td>[xyz] </td> <td>字符?character set)Q匹配这个集合中的Q一一个字W?或元字符) </td> </tr> <tr bgColor=#dfdfdf> <td>[^xyz] </td> <td>不匹配这个集合中的Q何一个字W?</td> </tr> <tr> <td>[\b] </td> <td>匚w一个退格符</td> </tr> <tr bgColor=#dfdfdf> <td>\b </td> <td>匚w一个单词的边界 </td> </tr> <tr> <td>\B </td> <td>匚w一个单词的非边?/td> </tr> <tr bgColor=#dfdfdf> <td>\cX </td> <td>q儿QX是一个控制符Q?\cM/匚wCtrl-M </td> </tr> <tr> <td>\d </td> <td>匚w一个字数字W,/\d/ = /[0-9]/ </td> </tr> <tr bgColor=#dfdfdf> <td>\D </td> <td>匚w一个非字数字符Q?\D/ = /[^0-9]/ </td> </tr> <tr> <td>\n </td> <td>匚w一个换行符 </td> </tr> <tr bgColor=#dfdfdf> <td>\r </td> <td>匚w一个回车符 </td> </tr> <tr> <td>\s </td> <td>匚w一个空白字W,包括\n,\r,\f,\t,\v{?</td> </tr> <tr bgColor=#dfdfdf> <td>\S </td> <td>匚w一个非I白字符Q等?[^\n\f\r\t\v]/ </td> </tr> <tr> <td>\t </td> <td>匚w一个制表符 </td> </tr> <tr bgColor=#dfdfdf> <td>\v </td> <td>匚w一个重直制表符 </td> </tr> <tr> <td>\w </td> <td>匚w一个可以组成单词的字符(alphanumericQ这是我的意译,含数?Q包括下划线Q如[\w]匚w"$5.98"中的5Q等于[a-zA-Z0-9] </td> </tr> <tr bgColor=#dfdfdf> <td>\W </td> <td>匚w一个不可以l成单词的字W,如[\W]匚w"$5.98"中的$Q等于[^a-zA-Z0-9]?/td> </tr> </tbody> </table> <br></font><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"><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> check_number(obj){<br>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">/^</span><span style="COLOR: #000000">\d</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">$</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">.test(obj.value)){<br>                </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br>            }</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">{<br>                alert('误入数?/span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">');<br>                </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br>            }<br>        }</span></div> l合上面的特D字W说明,我们q道这是一个检验obj的值是否是数字。相关例子可以参?a >http://www.javaeye.com/topic/30728</a><br><br> <li>创徏Q?<br>一个文本格式或正则表达式构造函?<br>文本格式Q?/pattern/flags <br>正则表达式构造函敎ͼ new RegExp("pattern"[,"flags"]); <li>参数说明Q?<br>pattern -- 一个正则表辑ּ文本 <br>flags -- 如果存在Q将是以下| <br>g: 全局匚w <br>i: 忽略大小?<br>gi: 以上l合<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"><span style="COLOR: #000000"><</span><span style="COLOR: #000000">script language</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> reg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> RegExp(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l古</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">g</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创徏正则RegExp对象</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> stringObj</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l古人民共和国,l古人民</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> newstr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">stringObj.replace(reg,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">中国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br>alert(newstr);<br></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">></span></div> 别一U规?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"><span style="COLOR: #000000">    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">script 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">></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> reg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> RegExp(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l古</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">g</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>        </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> str</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l古人民共和国,l古人民</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>        </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> newstr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">str.replace(reg,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">中国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br>        </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> ostr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">str.replace(</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(?</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">g,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><font color=red>$1</font></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>        document.write(ostr);<br>        alert(newstr);<br>    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">></span></div> <br></font></li> <img src ="http://www.aygfsteel.com/pdw2009/aggbug/109402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pdw2009/" target="_blank">有猫怼的日?/a> 2007-04-09 15:01 <a href="http://www.aygfsteel.com/pdw2009/archive/2007/04/09/109402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript和浏览器对象模型http://www.aygfsteel.com/pdw2009/archive/2006/12/04/85459.html有猫怼的日?/dc:creator>有猫怼的日?/author>Mon, 04 Dec 2006 14:43:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/12/04/85459.htmlhttp://www.aygfsteel.com/pdw2009/comments/85459.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/12/04/85459.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/85459.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/85459.html

graphics/10fig03.gif


]]>
JavaScript学习W记http://www.aygfsteel.com/pdw2009/archive/2006/11/07/79725.html有猫怼的日?/dc:creator>有猫怼的日?/author>Tue, 07 Nov 2006 15:09:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/11/07/79725.htmlhttp://www.aygfsteel.com/pdw2009/comments/79725.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/11/07/79725.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/79725.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/79725.html阅读全文

]]>
js常用校验http://www.aygfsteel.com/pdw2009/archive/2006/10/27/77653.html有猫怼的日?/dc:creator>有猫怼的日?/author>Fri, 27 Oct 2006 07:00:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77653.htmlhttp://www.aygfsteel.com/pdw2009/comments/77653.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77653.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/77653.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/77653.html阅读全文

]]>
js正则入门http://www.aygfsteel.com/pdw2009/archive/2006/10/27/77650.html有猫怼的日?/dc:creator>有猫怼的日?/author>Fri, 27 Oct 2006 06:57:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77650.htmlhttp://www.aygfsteel.com/pdw2009/comments/77650.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77650.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/77650.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/77650.html JS的正则表辑ּ

//校验是否全由数字l成

代码
						
function isDigit ( s )
{
var patrn =/ ^[0-9]{1,20}$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验d名:只能输入5-20个以字母开头、可带数字、“_”、?”的字串

代码
						
function isRegisterUserName ( s )
{
var patrn =/ ^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验用户姓名Q只能输?-30个以字母开头的字串

代码
						
function isTrueName ( s )
{
var patrn =/ ^[a-zA-Z]{1,30}$ /;
if (! patrn . exec ( s )) return false
return true
}
}}

/ /校验密码Q只能输?/span> 6 - 20个字母、数字、下划线
[ code ]
function isPasswd ( s )
{
var patrn =/ ^(\w){6,20}$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验普通电话、传真号码:可以?”开_除数字外Q可含有??

代码
						
function isTel ( s )
{
/ / var patrn =/ ^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$ /;
var patrn =/ ^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验手机LQ必M数字开_除数字外Q可含有??

代码
						
function isMobil ( s )
{
var patrn =/ ^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验邮政~码

代码
						
function isPostalCode ( s )
{
/ / var patrn =/ ^[a-zA-Z0-9]{3,12}$ /;
var patrn =/ ^[a-zA-Z0-9 ]{3,12}$ /;
if (! patrn . exec ( s )) return false
return true
}

//校验搜烦关键?

代码
						
function isSearch ( s )
{
var patrn =/ ^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<> / ?] { 1 }[^`~! @ $%^ &()+=|\\\]
[\]\{\}:;' \,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}

function isIP(s) //by zergling
{ var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}

正则表达?/span>

代码
						
" ^\\d+$ "  // 非负整数Q正整数 + 0Q?
"^[0-9]*[1-9][0-9]*$"  
//正整?/span>
" ^((-\\d+)|(0+))$ "  // 非正整数Q负整数 + 0Q?
"^-[0-9]*[1-9][0-9]*$"  
//负整?/span>
" ^-?\\d+$ "    // 整数
"^\\d+(\\.\\d+)?$"  
//非负点敎ͼ正QҎ + 0Q?/span>
" ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ " 
/ /正QҎ
" ^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$ "  // 非正点敎ͼ负QҎ + 0Q?
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" 
//负QҎ
" ^(-?\\d+)(\\.\\d+)?$ "  // 点?
"^[A-Za-z]+$"  
//?/span> 26个英文字母组成的字符?/span>
" ^[A-Z]+$ "  // ?6个英文字母的大写l成的字W串
"^[a-z]+$"  
//?/span> 26个英文字母的写l成的字W串
" ^[A-Za-z0-9]+$ "  // 由数字和26个英文字母组成的字符?
"^\\w+$"  
//由数字?/span> 26个英文字母或者下划线l成的字W串
" ^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$ "    // email地址
"^[a-zA-z]+:
//(\\ w +(-\\ w +)*)(\\.(\\ w +(-\\ w +)*))*(\\ ?\\ S *) ?$ "   //url
"^[ A - Za - z0 - 9_ ]* $"

正则表达式用详?/span>

?

单的_正则表达式是一U可以用于模式匹配和替换的强有力的工兗其作用如下Q?
试字符串的某个模式。例如,可以对一个输入字W串q行试Q看在该字符串是否存在一个电话号码模式或一个信用卡L模式。这UCؓ数据有效性验证?
替换文本。可以在文档中用一个正则表辑ּ来标识特定文字,然后可以全部其删除Q或者替换ؓ别的文字?
Ҏ模式匚w从字W串中提取一个子字符丌Ӏ可以用来在文本或输入字D中查找特定文字?

基本语法

在对正则表达式的功能和作用有了初步的了解之后Q我们就来具体看一下正则表辑ּ的语法格式?
正则表达式的形式一般如下:  

/love/  其中位于?”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匚w对象的模式内Ҏ入?”定界符之间卛_。ؓ了能够用户更加灉|的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符是指那些在正则表达式中hҎ意义的专用字W,可以用来规定其前导字W(即位于元字符前面的字W)在目标对象中的出现模式?
较ؓ常用的元字符包括Q??”, ?”,以及 ?”?/p>

?”元字符规定其前导字W必d目标对象中连l出Cơ或多次?/p>

?”元字符规定其前导字W必d目标对象中出现零ơ或q箋多次?/p>

?”元字符规定其前导对象必d目标对象中连l出现零ơ或一ơ?/p>

下面Q就让我们来看一下正则表辑ּ元字W的具体应用?

/fo+/  因ؓ上述正则表达式中包含?”元字符Q表C可以与目标对象中的 “fool? “fo? 或?“football”等在字母f后面q箋出现一个或多个字母o的字W串相匹配?

/eg*/  因ؓ上述正则表达式中包含?”元字符Q表C可以与目标对象中的 “easy? “ego? 或?“egg”等在字母e后面q箋出现零个或多个字母g的字W串相匹配?

/Wil?/  因ؓ上述正则表达式中包含“?”元字符Q表C可以与目标对象中的 “Win? 或者“Wilson?{在字母i后面q箋出现零个或一个字母l的字W串相匹配?

有时候不知道要匹配多字W。ؓ了能适应q种不确定性,正则表达式支持限定符的概c这些限定符可以指定正则表达式的一个给定组件必要出现多少ơ才能满_配?/p>

{n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?/p>

{n,} n 是一个非负整数。至匹?n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h?'o+'?o{0,}' 则等价于 'o*'?/p>

{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。例如,"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h?'o?'。请注意在逗号和两个数之间不能有空根{?/p>

除了元字W之外,用户q可以精指定模式在匚w对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字Wm可以在匹配对象中q箋出现2-6ơ,因此Q上q正则表辑ּ可以同jimmy或jimmmmmy{字W串相匹配?
在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字W的使用方式?

代码
						
\sQ用于匹配单个空格符Q包括tab键和换行W;
\SQ用于匹配除单个I格W之外的所有字W;
\dQ用于匹配从0?的数字;
\wQ用于匹配字母,数字或下划线字符Q?/span>
\WQ用于匹配所有与\w不匹配的字符Q?/span>
. Q用于匹配除换行W之外的所有字W?

Q说明:我们可以把\s和\S以及\w和\W看作互ؓ逆运)
下面Q我们就通过实例看一下如何在正则表达式中使用上述元字W?
/\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个I格字符?
/\d000/ 如果我们手中有一份复杂的财务报表Q那么我们可以通过上述正则表达式轻而易丄查找到所有总额辑֍元的N?
除了我们以上所介绍的元字符之外Q正则表辑ּ中还h另外一U较为独特的专用字符Q即定位W。定位符用于规定匚w模式在目标对象中的出C|?较ؓ常用的定位符包括Q?“^? ?? “\b?以及 “\B”?
代码

“^”定位符规定匚w模式必须出现在目标字W串的开?
?span class="global">$”定位符规定匚w模式必须出现在目标对象的l尾
“\b”定位符规定匚w模式必须出现在目标字W串的开头或l尾的两个边界之一
“\B”定位符则规定匹配对象必M于目标字W串的开头和l尾两个边界之内Q?/span>
卛_配对象既不能作ؓ目标字符串的开_也不能作为目标字W串的结?

同样Q我们也可以把“^”和?”以及“\b”和“\B”看作是互ؓ逆运的两组定位W。D例来_ /^hell/ 因ؓ上述正则表达式中包含“^”定位符Q所以可以与目标对象中以 “hell? “hello”或“hellhound”开头的字符串相匚w?/ar$/ 因ؓ上述正则表达式中包含?”定位符Q所以可以与目标对象中以 “car? “bar”或 “ar?l尾的字W串相匹配?/\bbom/ 因ؓ上述正则表达式模式以“\b”定位符开_所以可以与目标对象中以 “bomb? ?“bom”开头的字符串相匚w?man\b/ 因ؓ上述正则表达式模式以“\b”定位符l尾Q所以可以与目标对象中以 “human? “woman”或 “man”结字符串相匚w?
Z能够方便用户更加灉|的设定匹配模式,正则表达式允怋用者在匚w模式中指定某一个范围而不局限于具体的字W。例如:
代码

/[A-Z]/  上述正则表达式将会与?/span>A到Z范围内Q何一个大写字母相匚w?/span>
/[a-z]/  上述正则表达式将会与?/span>a到z范围内Q何一个小写字母相匚w?/span>
/[0-9]/  上述正则表达式将会与?span class="number">0?范围内Q何一个数字相匚w?/span>
/([a-z][A-Z][0-9])+/ 上述正则表达式将会与M由字母和数字l成的字W串Q如 “aB0?{相匚w?


q里需要提醒用h意的一点就是可以在正则表达式中使用 ?)?把字W串l合在一赗?)”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸?“abc”等的字W串匚wQ因为“abc”中的最后一个字Wؓ字母而非数字?
如果我们希望在正则表辑ּ中实现类似编E逻辑中的“或”运,在多个不同的模式中Q选一个进行匹配的话,可以使用道W?“|”。例如:/to|too|2/ 上述正则表达式将会与目标对象中的 “to? “too? ???相匹配?
正则表达式中q有一个较为常用的q算W,卛_定符 “[^]”。与我们前文所介绍的定位符 “^?不同Q否定符 “[^]”规定目标对象中不能存在模式中所规定的字W串。例如:/[^A-C]/ 上述字符串将会与目标对象中除AQBQ和C之外的Q何字W相匚w。一般来_当“^”出现在 “[]”内时就被视做否定运符Q而当“^”位于“[]”之外,或没有“[]”时Q则应当被视做定位符?
最后,当用户需要在正则表达式的模式中加入元字符Qƈ查找其匹配对象时Q可以用{义符“\”。例如:/Th\*/  上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配?
在构造正则表辑ּ之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先序来求倹{优先如下Q?
代码

1Q\ 转义W?
2Q?/span>(),(?:),(?=),[] 圆括号和Ҏ?
3Q?/span>*,+,?,{n},{n,},{n,m} 限定W?
4Q^,$, \anymetacharacter 位置和顺?
5Q?/span>|“或”操?/span>

使用实例
在JavaScript 1.2中带有一个功能强大的RegExp()对象Q可以用来进行正则表辑ּ的匹配操作。其中的test()Ҏ可以验目标对象中是否包含匚w模式Qƈ相应的返回true或false?
我们可以使用JavaScript~写以下脚本Q验证用戯入的邮g地址的有效性?

代码

<html>
<head>
  <scriptlanguage="Javascript1.2">
     <!--starthiding
     functionverifyAddress(obj)
     {
      varemail=obj.email.value;
      varpattern=
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
      flag=pattern.test(email);
      if(flag)
      {
       alert(?/span>Youremailaddressiscorrect!?/span>);
       returntrue;
      }
      else
       {
        alert(?/span>Pleasetryagain!?/span>);
        returnfalse;
        }
      }
     //stophiding-->
    </script>
  <
/head>
  <body>
   <formonSubmit="return verifyAddress(this);">
    <inputname="email"type="text">
    <inputtype="submit">
    </form>
  <
/body>
</html>

正则表达式对?/span>
本对象包含正则表辑ּ模式以及表明如何应用模式的标志?

代码

语法 1re=/pattern/[flags]
语法 2re=newRegExp("pattern",["flags"])

参数
re
必选项。将要赋gؓ正则表达式模式的变量名?

Pattern
必选项。要使用的正则表辑ּ模式。如果用语?1Q用 "/" 字符分隔模式。如果用语法 2Q用引号模式引h?

Flags
可选项。如果用语?2 要用引号?flag 引v来。标志可以组合用,可用的有Q?

代码

g Q全文查扑և现的所?patternQ?/span>
i Q忽略大写Q?
m Q多行查找)

CZ
下面的示例创Z个包含正则表辑ּ模式及相x志的对象(re)Q向您演C正则表辑ּ对象的用法。在本例中,作ؓl果的正则表辑ּ对象又用?match Ҏ中:

代码

functionMatchDemo()
{
varr,re;// 声明变量?
vars="The rain in Spain falls mainly in the plain";
re=newRegExp("ain","g");// 创徏正则表达式对象?
r=s.match(re);// 在字W串 s 中查扑֌配?
return(r);
}

q回| ain,ain,ain,ain\\
属?lastIndex 属?| source 属性\\
Ҏ compile Ҏ | exec Ҏ | test Ҏ\\
要求 版本 3\\
请参?RegExp 对象 | 正则表达式语?| String 对象\\

exec Ҏ
用正则表辑ּ模式在字W串中运行查找,q返回包含该查找l果的一个数l?
rgExp.exec(str)

参数

rgExp
必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?

str
必选项。要在其中执行查扄 String 对象或字W串文字?

说明\\
如果 exec Ҏ没有扑ֈ匚wQ则它返?null。如果它扑ֈ匚wQ则 exec Ҏq回一个数l,q且更新全局 RegExp 对象的属性,以反映匹配结果。数l的0元素包含了完整的匚wQ而第1到n元素中包含的是匹配中出现的Q意一个子匚w。这相当于没有设|全局标志 (g) ?match Ҏ?
如果为正则表辑ּ讄了全局标志Qexec 从以 lastIndex 的值指C的位置开始查找。如果没有设|全局标志Qexec 忽略 lastIndex 的|从字W串的v始位|开始搜索?/p>

exec Ҏq回的数l有三个属性,分别?input、index ?lastIndex。Input 属性包含了整个被查扄字符丌ӀIndex 属性中包含了整个被查找字符串中被匹配的子字W串的位|。LastIndex 属性中包含了匹配中最后一个字W的下一个位|?/p>

CZ\\
下面的例子D例说明了 exec Ҏ的用法:

代码

functionRegExpTest()
{
varver=Number(ScriptEngineMajorVersion()+"."+ScriptEngineMinorVersion())
if(ver>=5.5){//JScript 的版本?
varsrc="The rain in Spain falls mainly in the plain.";
varre=/\w+/g;// 创徏正则表达式模式?
vararr;
while((arr=re.exec(src))!=null)
document.write(arr.index+"-"+arr.lastIndex+arr+"\t");
}
else{
alert("请?JScript 的更新版?/span>");
}
}

q回|0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain

test Ҏ\\
q回一?Boolean |它指出在被查扄字符串中是否存在模式?
rgexp.test(str)

参数\\
rgexp
必选项。包含正则表辑ּ模式或可用标志的正则表达式对象?

str
必选项。要在其上测试查扄字符丌Ӏ?

说明
test Ҏ查在字符串中是否存在一个模式,如果存在则返?trueQ否则就q回 false?
全局 RegExp 对象的属性不?test Ҏ来修攏V?/p>

CZ
下面的例子D例说明了 test Ҏ的用法:

代码

functionTestDemo(re,s)
{
vars1;// 声明变量?
// 查字W串是否存在正则表达式?
if(re.test(s))// 试是否存在?
s1 = " contains ";
//s 包含模式?
else
s1=" does not contain ";//s 不包含模式?
return("'"+s+"'"+s1+"'"+re.source+"'");// q回字符丌Ӏ?
}

函数调用Qdocument.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain."));

q回|'The rain in Spain falls mainly in the plain.' contains 'ain+'

match Ҏ
使用正则表达式模式对字符串执行查找,q将包含查找的结果作为数l返回。\\
stringObj.match(rgExp)

参数\\
stringObj
必选项。对其进行查扄 String 对象或字W串文字?

rgExp
必选项。ؓ包含正则表达式模式和可用标志的正则表辑ּ对象。也可以是包含正则表辑ּ模式和可用标志的变量名或字符串文字?

说明\\
如果 match Ҏ没有扑ֈ匚wQ返?null。如果找到匹配返回一个数lƈ且更新全局 RegExp 对象的属性以反映匚wl果?
match Ҏq回的数l有三个属性:input、index ?lastIndex。Input 属性包含整个的被查扑֭W串。Index 属性包含了在整个被查找字符串中匚w的子字符串的位置。LastIndex 属性包含了最后一ơ匹配中最后一个字W的下一个位|?
如果没有讄全局标志 (g)Q数l的 0 元素包含整个匚wQ而第 1 ?n 元素包含了匹配中曑և现过的Q一个子匚w。这相当于没有设|全局标志?exec Ҏ。如果设|了全局标志Q元?0 ?n 中包含所有匹配?/p>

CZ\\
下面的示例演CZmatch Ҏ的用法:

代码

functionMatchDemo()
{
varr,re;// 声明变量?
vars="The rain in Spain falls mainly in the plain";
re=/ain/i;// 创徏正则表达式模式?
r=s.match(re);// 试匚w搜烦字符丌Ӏ?
return(r);// q回W一ơ出?"ain" 的地斏V?
}

q回|ain

本示例说明带 g 标志讄?match Ҏ的用法?

代码

functionMatchDemo()
{
varr,re;// 声明变量?
vars="The rain in Spain falls mainly in the plain";
re=/ain/ig;// 创徏正则表达式模式?
r=s.match(re);// 试d配搜索字W串?
return(r);// q回的数l包含了所?"ain"
// 出现的四个匹配?
}

q回|ain,ain,ain,ain

上面几行代码演示了字W串文字?match Ҏ的用法?

代码

varr,re="Spain";
r="The rain in Spain".replace(re,"Canada");
returnr;

q回|The rain in Canada

search Ҏ
q回与正则表辑ּ查找内容匚w的第一个子字符串的位置?/p>

stringObj.search(rgExp)

参数\\
stringObj
必选项。要在其上进行查扄 String 对象或字W串文字?

rgExp
必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?

说明

search Ҏ指明是否存在相应的匹配。如果找C个匹配,search Ҏ返回一个整数|指明q个匚w距离字符串开始的偏移位置。如果没有找到匹配,则返?-1?/p>

CZ\\
下面的示例演CZ search Ҏ的用法?

代码

functionSearchDemo()
{
varr,re;// 声明变量?
vars="The rain in Spain falls mainly in the plain.";
re=/falls/i;// 创徏正则表达式模式?
r=s.search(re);// 查找字符丌Ӏ?
return(r);// q回 Boolean l果?
}

q回|18

正则表达式语?/span>
一个正则表辑ּ是由普通字W(例如字符 a ?zQ以及特D字W(UCؓ元字W)l成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符丌Ӏ正则表辑ּ作ؓ一个模板,某个字W模式与所搜烦的字W串q行匚w?/p>

q里有一些可能会遇到的正则表辑ּCZQ?

代码

JScriptVBScript 匚w
/^\[ \t]*$/"^\[\t]*$" 匚w一个空白行?
/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID L是否׃?位数字,一个连字符以及一?位数字组成?
/<(.*)>.*<\/\1>/"<(.*)>.*<\/\1>" 匚w一?HTML 标记?

下表是元字符及其在正则表辑ּ上下文中的行为的一个完整列表:

字符 描述
\ 下一个字W标Cؓ一个特D字W、或一个原义字W、或一?后向引用、或一个八q制转义W。例如,'n' 匚w字符 "n"?\n' 匚w一个换行符。序?'\\' 匚w "\" ?"\(" 则匹?"("?

^ 匚w输入字符串的开始位|。如果设|了 RegExp 对象?Multiline 属性,^ 也匹?'\n' ?'\r' 之后的位|?

$ 匚w输入字符串的l束位置。如果设|了RegExp 对象?Multiline 属性,$ 也匹?'\n' ?'\r' 之前的位|?

* 匚w前面的子表达式零ơ或多次。例如,zo* 能匹?"z" 以及 "zoo"?* {h于{0,}?

+ 匚w前面的子表达式一ơ或多次。例如,'zo+' 能匹?"zo" 以及 "zoo"Q但不能匚w "z"? {h?{1,}?

? 匚w前面的子表达式零ơ或一ơ。例如,"do(es)?" 可以匚w "do" ?"does" 中的"do" ? {h?{0,1}?

{n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?

{n,} n 是一个非负整数。至匹配n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h?'o+'?o{0,}' 则等价于 'o*'?

{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。刘Q?"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h?'o?'。请注意在逗号和两个数之间不能有空根{?

? 当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串。例如,对于字符?"oooo"Q?o+?' 匹配单?"o"Q?'o+' 匹配所?'o'?

. 匚w?"\n" 之外的Q何单个字W。要匚w包括 '\n' 在内的Q何字W,请用象 '[.\n]' 的模式?
(pattern) 匚wpattern q获取这一匚w。所获取的匹配可以从产生?Matches 集合得到Q在VBScript 中?SubMatches 集合Q在JScript 中则使用 $0?9 属性。要匚w圆括号字W,请?'\(' ?'\)'?

(?:pattern) 匚w pattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用。这在?"? 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 是一个比 'industry|industries' 更简略的表达式?

(?=pattern) 正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹?"Windows 2000" 中的 "Windows" Q但不能匚w "Windows 3.1" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开始?

(?!pattern) 负向预查Q在M不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例?Windows (?!95|98|NT|2000)' 能匹?"Windows 3.1" 中的 "Windows"Q但不能匚w "Windows 2000" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开?

x|y 匚w x ?y。例如,'z|food' 能匹?"z" ?"food"?(z|f)ood' 则匹?"zood" ?"food"?

[xyz] 字符集合。匹配所包含的Q意一个字W。例如, '[abc]' 可以匚w "plain" 中的 'a'?

[^xyz] 负值字W集合。匹配未包含的Q意字W。例如, '[^abc]' 可以匚w "plain" 中的'p'?

[a-z] 字符范围。匹配指定范围内的Q意字W。例如,'[a-z]' 可以匚w 'a' ?'z' 范围内的L写字母字符?

[^a-z] 负值字W范围。匹配Q何不在指定范围内的Q意字W。例如,'[^a-z]' 可以匚wM不在 'a' ?'z' 范围内的L字符?

\b 匚w一个单词边界,也就是指单词和空格间的位|。例如, 'er\b' 可以匚w"never" 中的 'er'Q但不能匚w "verb" 中的 'er'?

\B 匚w非单词边界?er\B' 能匹?"verb" 中的 'er'Q但不能匚w "never" 中的 'er'?

\cx 匚w由x指明的控制字W。例如, \cM 匚w一?Control-M 或回车符?x 的值必Mؓ A-Z ?a-z 之一。否则,?c 视ؓ一个原义的 'c' 字符?

\d 匚w一个数字字W。等价于 [0-9]?

\D 匚w一个非数字字符。等价于 [^0-9]?

\f 匚w一个换늬。等价于 \x0c ?\cL?

\n 匚w一个换行符。等价于 \x0a ?\cJ?

\r 匚w一个回车符。等价于 \x0d ?\cM?

\s 匚wMI白字符Q包括空根{制表符、换늬{等。等价于 [ \f\n\r\t\v]?

\S 匚wM非空白字W。等价于 [^ \f\n\r\t\v]?

\t 匚w一个制表符。等价于 \x09 ?\cI?

\v 匚w一个垂直制表符。等价于 \x0b ?\cK?

\w 匚w包括下划U的M单词字符。等价于'[A-Za-z0-9_]'?

\W 匚wM非单词字W。等价于 '[^A-Za-z0-9_]'?

\xn 匚w nQ其?n 为十六进制{义倹{十六进制{义值必Mؓ定的两个数字长。例如, '\x41' 匚w "A"?\x041' 则等价于 '\x04' & "1"。正则表辑ּ中可以?ASCII ~码?

\num 匚w numQ其?num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匚w两个q箋的相同字W?

\n 标识一个八q制转义值或一个后向引用。如?\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?

\nm 标识一个八q制转义值或一个后向引用。如?\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?\nm 之前臛_?n 个获取,?n Z个后跟文?m 的后向引用。如果前面的条g都不满Q若 n ?m 均ؓ八进制数?(0-7)Q则 \nm 匹配八q制转义?nm?

\nml 如果 n 为八q制数字 (0-3)Q且 m ?l 均ؓ八进制数?(0-7)Q则匚w八进制{义?nml?

\un 匚w nQ其?n 是一个用四个十六q制数字表示?Unicode 字符。例如, \u00A9 匚w版权W号 (?)?

优先权顺?/span>
在构造正则表辑ּ之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先权序来求倹{?

下表从最高优先到最低优先列出各种正则表达式操作符的优先权序Q?

代码

操作W?描述
\ 转义W?
(),(?:),(?=),[] 圆括号和Ҏ?
*,+,?,{n},{n,},{n,m} 限定W?
^,$, \anymetacharacter 位置和顺?
| “或”操?

普通字W?/p>

普通字W由所有那些未昑ּ指定为元字符的打印和非打印字W组成。这包括所有的大写和小写字母字W,所有数字,所有标点符号以及一些符受?

最单的正则表达式是一个单独的普通字W,可以匚w所搜烦字符串中的该字符本n。例如,单字W模?'A' 可以匚w所搜烦字符串中M位置出现的字?'A'。这里有一些单字符正则表达式模式的CZQ?

代码

/a/
/7/
/M/

{h?VBScript 单字W正则表辑ּ为:
代码

"a"
"7"
"M"

可以多个单字符l合在一起得C个较大的表达式。例如,下面?JScript 正则表达式不是别的,是通过l合单字W表辑ּ 'a'?7'以及 'M' 所创徏出来的一个表辑ּ?

/a7M/
{h?VBScript 表达式ؓQ?/p>

"a7M"



]]>
javascript常用校验代码http://www.aygfsteel.com/pdw2009/archive/2006/10/27/77649.html有猫怼的日?/dc:creator>有猫怼的日?/author>Fri, 27 Oct 2006 06:56:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77649.htmlhttp://www.aygfsteel.com/pdw2009/comments/77649.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/10/27/77649.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/77649.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/77649.html阅读全文

]]>
在b/s开发中l常用到的javaScript技? http://www.aygfsteel.com/pdw2009/archive/2006/04/28/43713.html有猫怼的日?/dc:creator>有猫怼的日?/author>Fri, 28 Apr 2006 01:43:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/04/28/43713.htmlhttp://www.aygfsteel.com/pdw2009/comments/43713.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/04/28/43713.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/43713.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/43713.html
一、验证类
1、数字验证内
  1.1 整数
  1.2 大于0的整?Q用于传来的ID的验?
  1.3 负整数的验证
  1.4 整数不能大于iMax
  1.5 整数不能于iMin
2、时间类
  2.1 短时_形如 (13:04:06)
  2.2 短日期,形如 (2003-12-05)
  2.3 长时_形如 (2003-12-05 13:04:06)
  2.4 只有q和月。Ş?2003-05,或?003-5)
  2.5 只有时和分?形如(12:03)
3、表单类
  3.1 所有的表单的值都不能为空
  3.2 多行文本框的g能ؓI?br />  3.3 多行文本框的g能超qsMaxStrleng
  3.4 多行文本框的g能少于sMixStrleng
  3.5 判断单选框是否选择?br />  3.6 判断复选框是否选择.
  3.7 复选框的全选,多选,全不选,反?br />  3.8 文g上传q程中判断文件类?br />4、字W类
  4.1 判断字符全部由a-Z或者是A-Z的字字母l成
  4.2 判断字符由字母和数字l成?br />  4.3 判断字符由字母和数字Q下划线,点号l成.且开头的只能是下划线和字?br />  4.4 字符串替换函?Replace();
5、浏览器c?br />  5.1 判断览器的cd
  5.2 判断ie的版?br />  5.3 判断客户端的分L?br /> 
6、结合类
  6.1 email的判断?br />  6.2 手机L的验?br />  6.3 w䆾证的验证
 

二、功能类

1、时间与相关控gc?br />  1.1 日历
  1.2 旉控g
  1.3 万年?br />  1.4 昄动态显C时钟效果(文本Q如OA中时_
  1.5 昄动态显C时钟效?(囑փQ像手表)
2、表单类
  2.1 自动生成表单
  2.2 动态添加,修改Q删除下拉框中的元素
  2.3 可以输入内容的下拉框
  2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发?
 
3、打印类
  3.1 打印控g
4、事件类
  4.1 屏蔽右键
  4.2 屏蔽所有功能键
  4.3 --> ?lt;-- F5 F11,F9,F1
  4.4 屏蔽l合键ctrl+N
5、网设计类
  5.1 q箋滚动的文字,囄Q注意是q箋的,两段文字和图片中没有I白出现Q?br />  5.2 html~辑控gc?br />  5.3 颜色选取框控?br />  5.4 下拉菜单
  5.5 两层或多层次的下拉菜?br />  5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏?
  5.7 状态栏Qtitle栏的动态效果(例子很多Q可以研I一下)
  5.8 双击后,|页自动滚屏
6、树型结构?br />  6.1 asp+SQL?br />  6.2 asp+xml+sql?br />  6.3 java+sql或者java+sql+xml
7、无Ҏ效果的制?br />8、连动下拉框技?br />9、文本排?/p>


一、验证类
1、数字验证内
  1.1 整数
      /^(-|+)?d+$/.test(str)
  1.2 大于0的整?Q用于传来的ID的验?
      /^d+$/.test(str)
  1.3 负整数的验证
      /^-d+$/.test(str)
2、时间类
  2.1 短时_形如 (13:04:06)
      function isTime(str)
      {
        var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);
        if (a == null) {alert('输入的参C是时间格?); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("旉格式不对");
          return false
        }
        return true;
      }
  2.2 短日期,形如 (2003-12-05)
      function strDateTime(str)
      {
         var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1, r[4]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
      }
  2.3 长时_形如 (2003-12-05 13:04:06)
      function strDateTime(str)
      {
        var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
      }
  2.4 只有q和月。Ş?2003-05,或?003-5)
  2.5 只有时和分?形如(12:03)
3、表单类
  3.1 所有的表单的值都不能为空
      <input onblur="if(this.value.replace(/^s+|s+$/g,'')=='')alert('不能为空!')">
  3.2 多行文本框的g能ؓI?br />  3.3 多行文本框的g能超qsMaxStrleng
  3.4 多行文本框的g能少于sMixStrleng
  3.5 判断单选框是否选择?br />  3.6 判断复选框是否选择.
  3.7 复选框的全选,多选,全不选,反?br />  3.8 文g上传q程中判断文件类?br />4、字W类
  4.1 判断字符全部由a-Z或者是A-Z的字字母l成
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
  4.2 判断字符由字母和数字l成?br />      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
  4.3 判断字符由字母和数字Q下划线,点号l成.且开头的只能是下划线和字?br />      /^([a-zA-z_]{1})([w]*)$/g.test(str)
  4.4 字符串替换函?Replace();
5、浏览器c?br />  5.1 判断览器的cd
      window.navigator.appName
  5.2 判断ie的版?br />      window.navigator.appVersion
  5.3 判断客户端的分L?br />      window.screen.height;  window.screen.width;
 
6、结合类
  6.1 email的判断?br />      function ismail(mail)
      {
        return(new RegExp(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail));
      }
  6.2 手机L的验?br />  6.3 w䆾证的验证
      function isIdCardNo(num)
      {
        if (isNaN(num)) {alert("输入的不是数字!"); return false;}
        var len = num.length, re;
        if (len == 15)
          re = new RegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
        else if (len == 18)
          re = new RegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
        else {alert("输入的数字位C对!"); return false;}
        var a = num.match(re);
        if (a != null)
        {
          if (len==15)
          {
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          else
          {
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          if (!B) {alert("输入的n份证?"+ a[0] +" 里出生日期不对!"); return false;}
        }
        return true;
      }

3.7 复选框的全选,多选,全不选,反?br /><form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全?lt;br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>


<input type=checkbox name=All2 onclick="checkAll('mm2')">全?lt;br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
  var a = document.getElementsByName(str);
  var n = a.length;
  for (var i=0; i<n; i++)
  a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
  var e = window.event.srcElement;
  var all = eval("document.hrong."+ str);
  if (e.checked)
  {
    var a = document.getElementsByName(e.name);
    all.checked = true;
    for (var i=0; i<a.length; i++)
    {
      if (!a[i].checked){ all.checked = false; break;}
    }
  }
  else all.checked = false;
}
</SCRIPT>

3.8 文g上传q程中判断文件类?br /><input type=file onchange="alert(this.value.match(/^(.*)(.)(.{1,8})$/)[3])">

d:
<OBJECT
id=S
style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px"
height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

写注册表Q?br /><SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCUSoftwareACMEFortuneTeller", 1, "REG_BINARY");
WshShell.RegWrite ("HKCUSoftwareACMEFortuneTellerMindReader", "Goocher!", "REG_SZ");
var bKey =    WshShell.RegRead ("HKCUSoftwareACMEFortuneTeller");
WScript.Echo (WshShell.RegRead ("HKCUSoftwareACMEFortuneTellerMindReader"));
WshShell.RegDelete ("HKCUSoftwareACMEFortuneTellerMindReader");
WshShell.RegDelete ("HKCUSoftwareACMEFortuneTeller");
WshShell.RegDelete ("HKCUSoftwareACME");
</SCRIPT>

TABLAE相关(客户端动态增加行列)
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
    var count=0;
    for (i=0; i < document.all.mytable.rows.length; i++) {
        for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
            document.all.mytable.rows(i).cells(j).innerText = count;
            count++;
        }
    }
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </TH></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
</TABLE>
</BODY>
</HTML>

Q.w䆾证严格验证:

<script>
var aCity={11:"北京",12:"天|",13:"沛_",14:"p",15:"内蒙?,21:"辽宁",22:"吉林",23:" 黑龙?,31:"上v",32:"江苏",33:"江",34:"安徽",35:"徏",36:"江西",37:"׃",41:"沛_",42: "湖北",43:"湖南",44:"q东",45:"q西",46:"南",50:"重庆",51:"四川",52:"贵州",53:"云南",54: "西藏",61:"陕西",62:"甘肃",63:"青v",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91: "国外"}
 
function cidInfo(sId){
 var iSum=0
 var info=""
 if(!/^d{17}(d|x)$/i.test(sId))return false;
 sId=sId.replace(/x$/i,"a");
 if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
 sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
 var d=new Date(sBirthday.replace(/-/g,"/"))
 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
 for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
 if(iSum%11!=1)return "Error:非法证号";
 return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"?:"?)
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

Q.验证QP地址
<SCRIPT LANGUAGE="JavaScript">
function isip(s){
 var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
 var re=s.split(".")
 return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

 

Q.加sp1后还能用的无ҎH口Q!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" STYLE="behavior:url(#default#download)" />
<title>Chromeless Window</title>

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

/*
 This following code are designed and writen by Windy_sk <seasonx@163.net>
 You can use it freely, but u must held all the copyright items!
*/

/*--- Thanks For andot Again ---*/

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

//Build Window
include.startDownload(CW_url, function(source){content=source});

function insert_content(){
 var temp = "";
 CW_Body.style.overflow  = "hidden";
 CW_Body.style.backgroundColor = "white";
 CW_Body.style.border  =  "solid black 1px";
 content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
 temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
 temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick="Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
 temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>";
 temp += "<td style='color:#ffffff;padding-right:5px;' align=right>";
 temp += "<span id=Help  onclick="alert('Chromeless Window For IE6 SP1  -  Ver 1.0 Code By Windy_sk Special Thanks For andot')" style=""+CSStext+"font-family:System;padding-right:2px;">?</span>";
 temp += "<span id=Min   onclick='parent.New_CW.hide();parent.blur()' style=""+CSStext+"font-family:Webdings;" title='Minimum'>0</span>";
 temp += "<span id=Max   onclick="this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();" style=""+CSStext+"font-family:Webdings;" title='Maximum'>1</span>";
 temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=""+CSStext+"font-family:System;padding-right:2px;" title='Close'>x</span>";
 temp += "</td></tr><tr><td colspan=2>";
 temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>";
 temp += content;
 temp += "</div>";
 temp += "</td></tr></table>";
 CW_Body.innerHTML = temp;
}

setTimeout("insert_content()",1000);

var if_max = true;
function show_CW(){
 window.moveTo(10000, 10000);
 if(if_max){
  New_CW.show(CW_top, CW_left, CW_width, CW_height);
  if(typeof(New_CW.document.all.include)!="undefined"){
   New_CW.document.all.include.style.width = CW_width;
   New_CW.document.all.Max.innerText = "1";
  }
 
 }else{
  New_CW.show(0, 0, screen.width, screen.height);
  New_CW.document.all.include.style.width = screen.width;
 }
}

window.onfocus  = show_CW;
window.onresize = show_CW;

// Move Window
var drag_x,drag_y,draging=false

function drag_move(e){
 if (draging){
  New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
  return false;
 }
}

function drag_down(e){
 if(e.button==2)return;
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
 drag_x=e.clientX;
 drag_y=e.clientY;
 draging=true;
 e.srcElement.setCapture();
}

function drag_up(e){
 draging=false;
 e.srcElement.releaseCapture();
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
 CW_top  = e.screenX-drag_x;
 CW_left = e.screenY-drag_y;
}

</SCRIPT>
</HTML>

电话L的验?/p>

要求Q?br />  (1)电话L由数字?("?)"?-"构成
  (2)电话L???br />  (3)如果电话L中包含有区号Q那么区号ؓ三位或四?br />  (4)区号?("?)"?-"和其他部分隔开
  (5)Ud电话L?1?2位,如果?2?那么W一位ؓ0
  (6)11位移动电话号码的W一位和W二位ؓ"13"
  (7)12位移动电话号码的W二位和W三位ؓ"13"
  Ҏq几条规则,可以与出以下正则表达式:
  (^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)


<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

h在输入非数字字符不回昄效果Q即寚w数字字符的输入不作反应?br />function numbersonly(field,event){
 var key,keychar;
 if(window.event){
  key = window.event.keyCode;
 }
 else if (event){
  key = event.which;
 }
 else{
  return true
 }
 keychar = String.fromCharCode(key);
 if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
  return true;
 }
 else if(("0123456789.").indexOf(keychar)>-1){
  window.status = "";
  return true;
 }
 else {
  window.status = "Field excepts numbers only";
  return false;
 }
}

验证ip

str=document.RegExpDemo.txtIP.value;
if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)
{
 window.alert('错误的IP地址格式');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
 window.alert('错误的IP地址');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
//剔除 如?010.020.020.03 前面 ?
var str=str.replace(/0(d)/g,"$1");
str=str.replace(/0(d)/g,"$1");
window.alert(str);



]]>
今天又做的一个页?http://www.aygfsteel.com/pdw2009/archive/2006/03/06/33895.html有猫怼的日?/dc:creator>有猫怼的日?/author>Mon, 06 Mar 2006 10:00:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/03/06/33895.htmlhttp://www.aygfsteel.com/pdw2009/comments/33895.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/03/06/33895.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/33895.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/33895.html<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<%@ page import="com.unicom.gzaddr.entity.vo.AddressSearchVO"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
  <head>
  <html:base />
  <title>l合搜烦</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <style type="text/css">
    #y_tab {
    LINE-HEIGHT: normal; HEIGHT: 28px
    }
    #y_tab UL {
   PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
    }
    #y_tab LI {
    FONT-SIZE: 14px; BACKGROUND: url(../images/btn.gif) no-repeat left top; FLOAT: left; MARGIN: 0px 0px 0px 1px; WIDTH: 80px; LINE-HEIGHT: 28px; HEIGHT: 28px
    }
 #y_tab LI A {
  DISPLAY: block; FONT-SIZE: 14px; WIDTH: 80px; COLOR: #000; FONT-FAMILY: Arial; HEIGHT: 28px; TEXT-DECORATION: none
    }
 #y_tab .yschfirst {
   FONT-WEIGHT: bold; BACKGROUND: url(../images/btn_cur.gif) no-repeat left top; COLOR: #fff
    }
 #y_tab #cur A {
   FONT-WEIGHT: bold; BACKGROUND-IMAGE: url(../images/btn_cur.gif); COLOR: #fff
    }
 #y_sch_box_input {
   BORDER-RIGHT: #ffb900 1px solid; BORDER-TOP: #ffb900 1px solid; PADDING-LEFT: 3px; FONT-SIZE: 14px; BORDER-LEFT: #ffb900 1px solid; WIDTH: 207px; PADDING-TOP: 2px; BORDER-BOTTOM: #ffb900 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #fff
    }
 .y_sch_box_btn {
   PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 80px; CURSOR: pointer; LINE-HEIGHT: 20px; PADDING-TOP: 0px; HEIGHT: 25px
    }
 .result_bar{
   BORDER-BOTTOM: #dcdcdc 1px solid; HEIGHT: 23px; BACKGROUND-COLOR: #f9f9f8;COLOR: #668bf1;font-size:12px;FONT-WEIGHT: bold;
 }
 .table_border_end{
   BORDER-BOTTOM: #ffffff 1px solid; background-color:#f5f5f5;font-size:12px;color:#555555
 }
  </style>
  <script language="JavaScript" type="text/JavaScript">
    var old_obj=false;
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
     function sb(obj){
       document.all("type").value=obj;
    if(obj=="address"){
        var srcobj=event.srcElement.parentElement.parentElement;
        old_obj=srcobj;
     document.all("address").innerHTML="地址";
     document.all("type").value="address"
    
     srcobj.className="yschfirst";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";

    }else if (obj=="name"){
        var srcobj=event.srcElement.parentElement.parentElement;
        old_obj=srcobj;
     document.all("name").innerHTML="名称";
     document.all("type").value="name";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";
    
    }else if(obj=="mobil"){
        var srcobj=event.srcElement.parentElement.parentElement;
        old_obj=srcobj;
     document.all("mobil").innerHTML="手机L";
     document.all("type").value="mobil";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";
    }else if(obj=="standard"){
        var srcobj=event.srcElement.parentElement.parentElement;
        old_obj=srcobj;
     document.all("standard").innerHTML="地址标准?;
     document.all("type").value="standard";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    }
  }
  function sb_r(obj){
       if(obj=="address"){
 
        var tab=document.getElementById("y_tab");
        var LIlist=tab.getElementsByTagName("LI");
        //alert("LIlist size->"+LIlist.length);
        var srcobj=LIlist[0];
        //alert("srcobj"+srcobj);
     document.all("address").innerHTML="地址";
     document.all("type").value="address"
    
     srcobj.className="yschfirst";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";
    }else if(obj=="name"){
     var tab=document.getElementById("y_tab");
        var LIlist=tab.getElementsByTagName("LI");
        //alert("LIlist size->"+LIlist.length);
        var srcobj=LIlist[1];
       
     document.all("name").innerHTML="名称";
     document.all("type").value="name";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";
    
    }else if(obj=="mobil"){
        var tab=document.getElementById("y_tab");
        var LIlist=tab.getElementsByTagName("LI");
        //alert("LIlist size->"+LIlist.length);
        var srcobj=LIlist[2];
       
     document.all("mobil").innerHTML="手机L";
     document.all("type").value="mobil";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("standard").parentElement.className="";
     document.all("standard").innerHTML="<a href='#' onMouseDown=sb('standard')>地址标准?lt;/a>";
    }else if(obj=="standard"){
        var tab=document.getElementById("y_tab");
        var LIlist=tab.getElementsByTagName("LI");
        //alert("LIlist size->"+LIlist.length);
        var srcobj=LIlist[3];
       
     document.all("standard").innerHTML="地址标准?;
     document.all("type").value="standard";
     srcobj.className="yschfirst";
    
     document.all("address").parentElement.className="";
     document.all("address").innerHTML="<a href='#' onMouseDown=sb('address')>地址</a>";
    
     document.all("name").parentElement.className="";
     document.all("name").innerHTML="<a href='#' onMouseDown=sb('name')>名称</a>";
    
     document.all("mobil").parentElement.className="";
     document.all("mobil").innerHTML="<a href='#' onMouseDown=sb('mobil')>手机L</a>";
    }
  }
 
 
  </script>
 
  </head>
  <body topmargin="0" leftmargin="0">

  <Br><br>
  <table width="500" height="28px"  border="0" align="center" cellpadding="0" cellspacing="0" id="y_tab">
    <tr align="center" id="tr1">
      <td align="center" id="td1">
     <UL>
      <%if(request.getAttribute("type")==null){%>
        <LI class="yschfirst">
   <%}else{%>
       <LI>
      <%}%>
       <span id="address">地址</span>
   </LI>
      <LI>
      <span id="name" ><a  href="#" onMouseDown="sb('name')">名称</a></span>
   </LI>
      <LI>
      <span id="mobil" ><a  href="#" onMouseDown="sb('mobil')">手机L</a></span>
   </LI>
      <LI>
      <span id="standard" ><a  href="#" onMouseDown="sb('standard')">地址标准?lt;/a></span>
   </LI>
  </UL>
   </td>
 </tr> 
  </table>
  <table width="550" height="70px"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr height="5px">
      <td width="5px" height="5px"  background="../images/y_box_a.gif"></td>
   <td width="590px" height="5px" background="../images/y_box_top_bg.gif"></td>
   <td width="5px" height="5px" background="../images/y_box_b.gif"></td>
    </tr>
    <tr bgcolor="#ffffc6" height="60px">
     <form action="<%=request.getContextPath()%>/allSearchAction.do?method=searchDo" method="post" name="form1">
   <td width="600" height="60px" colspan="3" style="border-right:1px solid #FFA800;border-left:1px solid #FFA800">
       &nbsp;<input type="hidden" name="type" id="type" value="address">
       <%if(request.getAttribute("searchText")==null){%>
      <input type="text" id="y_sch_box_input" name="searchText" >
    <%}else{%>
      <input type="text" id="y_sch_box_input" name="searchText" value="<%=(String)request.getAttribute("searchText")%>">
    <%}%>
    &nbsp;&nbsp;<input type="submit" class="y_sch_box_btn" value="?nbsp;  ?>
   </td>
  </form>
    </tr>
    <tr>
      <td width="5px" height="5px"  background="../images/y_box_d.gif"></td>
   <td width="590px" height="5px" background="../images/y_box_bot_bg.gif"></td>
   <td width="5px" height="5px" background="../images/y_box_c.gif"></td>
    </tr>
  </table>
  <table width="550" border="0" align="center" cellpadding="1" cellspacing="0">
    <tr class="result_bar">
      <td><span id="result_title">搜烦l果</span></td>
    </tr>
    <logic:equal name="have_return" scope="request" value="false">
    <tr>
      <td  class="table_border_end">搜烦不到W合条g的记?</td>
    </tr>
    </logic:equal>
    <logic:equal name="have_return" scope="request" value="true"> <!--表示搜烦得到记录 -->
      <logic:equal name="type" scope="request" value="address">
        <logic:present name="dataList" scope="request">
          <logic:iterate name="dataList" scope="request" id="xdata" type="com.unicom.gzaddr.entity.vo.AddressSearchVO">
            <tr>
              <td  class="table_border_end">
                 <html:link page="/addrview.do?method=view" paramProperty="addr_id" paramName="xdata"  paramId="addr_id"  style="color:blue;font-size:12px; "> <bean:write name="xdata" property="addr_name"/></html:link><br>
                 <bean:write name="xdata" property="addr_path"/>
              </td>
            </tr>
         </logic:iterate>
       </logic:present>
      </logic:equal>
      <!-- 地址标准?-->
      <logic:equal name="type" scope="request" value="standard">
         <Tr>
           <td  class="table_border_end">
             <bean:write name="result" scope="request" filter="false"/>
           </td>
         </Tr>
      </logic:equal>
    </logic:equal>
  </table>
  <p>&nbsp;</p>
  <p><br>
  </p>
  <%
    if(request.getAttribute("type")!=null){
  %>
       <SCRIPT>
           var a;
           a="<%=(String)request.getAttribute("type")%>";
           sb_r(a);
       </SCRIPT>
  <%}%>
  </body>
</html:html>



]]>
JavaScript 操作字符?http://www.aygfsteel.com/pdw2009/archive/2006/02/23/32155.html有猫怼的日?/dc:creator>有猫怼的日?/author>Thu, 23 Feb 2006 09:54:00 GMThttp://www.aygfsteel.com/pdw2009/archive/2006/02/23/32155.htmlhttp://www.aygfsteel.com/pdw2009/comments/32155.htmlhttp://www.aygfsteel.com/pdw2009/archive/2006/02/23/32155.html#Feedback0http://www.aygfsteel.com/pdw2009/comments/commentRss/32155.htmlhttp://www.aygfsteel.com/pdw2009/services/trackbacks/32155.html

JavaScript 操作字符?/B>

虽然 JavaScript 有很多用处,但是处理字符串是其中最行的一个。下面让我们深入地分析一下?JavaScript 操作字符丌Ӏ在 JavaScript 中, String 是对象?String 对象q不是以字符数组的方式存储的Q所以我们必M用内建函数来操纵它们的倹{这些内建函数提供了不同的方法来讉K字符串变量的内容。下面我们详l看一下这些函数?

包罗万象

操作字符串的值是一般的开发h员必面临的家常侉K。操作字W串的具体方式有很多Q比如说从一个字W串是提取出一部分内容来,或者确定一个字W串是否包含一个特定的字符。下面的 JavaScript 函数为开发h员提供了他们所需要的所有功能:

?nbsp; concat() ?两个或多个字符的文本组合v来,q回一个新的字W串?

?nbsp; indexOf() ?q回字符串中一个子串第一处出现的索引。如果没有匹配项Q返?-1 ?

?nbsp; charAT() ?q回指定位置的字W?

?nbsp; lastIndexOf() ?q回字符串中一个子串最后一处出现的索引Q如果没有匹配项Q返?-1 ?

<a target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>

?nbsp; match() ?查一个字W串是否匚w一个正则表辑ּ?

?nbsp; substring() ?q回字符串的一个子丌Ӏ传入参数是起始位置和结束位|?

?nbsp; replace() ?用来查找匚w一个正则表辑ּ的字W串Q然后用新字符串代替匹配的字符丌Ӏ?

?nbsp; search() ?执行一个正则表辑ּ匚w查找。如果查找成功,q回字符串中匚w的烦引倹{否则返?-1 ?

?nbsp; slice() ?提取字符串的一部分Qƈq回一个新字符丌Ӏ?

?nbsp; split() ?通过字W串划分成子Ԍ一个字W串做成一个字W串数组?

?nbsp; length() ?q回字符串的长度Q所谓字W串的长度是指其包含的字W的个数?

?nbsp; toLowerCase() ?整个字W串转成写字母?

?nbsp; toUpperCase() ?整个字W串转成大写字母?

注意Q?concat ?match ?replace ?search 函数是在 JavaScript 1.2 中加入的。所有其它函数在 JavaScript 1.0 已l提供了?

下面让我们看一下如何在 JavaScript 使用q些函数。下面的代码是用C前面提到的所有函敎ͼ

function manipulateString(passedString1, passedString2) {

var concatString;

// The string passed to concat is added to the end of the first string

concatString = passedString1.concat(passedString2);

alert(concatString);

// The following if statement will be true since first word is Tony

if (concatString.charAt(3) == "y") {

alert("Character found!");

}

// The last position of the letter n is 10

alert("The last index of n is: " + concatString.lastIndexOf("n"));

// A regular expression is used to locate and replace the substring

var newString = concatString.replace(/Tony/gi,"General");

// The following yields Please salute General Patton

alert("Please salute " + newString);

// The match function returns an array containing all matches found

matchArray = concatString.match(/Tony/gi);

for (var i=0; i<matchArray.length;i++) {

alert("Match found: " + matchArray[i]);

}

// Determine if the regular expression is found, a ? indicates no

if (newString.search(/Tony/) == -1) {

alert("String not found");

} else {

alert("String found.");

}

// Extract a portion of the string and store it in a new variable

var sliceString = newString.slice(newString.indexOf("l")+2,newString.length);

alert(sliceString);

// The split function creates a new array containing each value separated by a space

stringArray = concatString.split(" ");

for (var i=0; i<stringArray.length;i++) {

alert(stringArray[i];

}

alert(newString.toUpperCase());

alert(newString.toLowerCase());

}

下面是执行上面的代码得到的结果:

Tony Patton
Character Found!
The last index of n is: 10
Match found: Tony
Please salute General Patton
String not found
Patton
Tony
Patton
GENERAL PATTON
general patton

CZ代码把所有这些提到的函数都用C?

Ҏ字符

除了q些函数之外Q还有很多的Ҏ字符可以用来表示关键的效果。这些特D字W包括:

?nbsp; \t ?x?

?nbsp; \b ?退?/ 删除

?nbsp; \r ?回R

?nbsp; \n ?换行

?nbsp; \f ?换页

Ҏ字符最常见的用途就是格式化输出。例如,你可能需要在输出中插入一个换行来正确地显CZ个倹{而且Q在换行时也需要回车。在一些^CQ?\n ”已l够生换行效果了Q而在一些机器上要正地昄一个换行则需要?\r\n ”。下面的例子昄了在一个多行窗口上昄的特D字W:

var output = null;
output = "Special Characters";
output += "\n";
output += "===============";
output += "\n";
output += "\\t - tab";
output += "\n";
output += "\\b - backspace/delete";
output += "\n";
output += "\\r - carriage return";
output += "\n";
output += "\\n - newline";
output += "\n";
output += "\\f - form feed";
output += "\n";
alert(output);

前面的例子用加hq接字符Ԍ而没有?concat 函数。原因很单,对于 concat 函数来说Q每一个操作都需要一个新的变量;反之Q我们这里用的这U方法则单地扩展了原有的|而不需要新的变量。而且Q示例中使用换码W来正确地显C特D字W。系l将一个反斜线当作一个信P认ؓ它后面会跟一个特D字W,但是q着两个反斜U则抉|q种操作。输Z的每个字W都通过 newline Ҏ字符被显C在新的一行?

d到工L?

Ҏ字符和函数可以与其它 JavaScript 技巧结合v来解军_多问题。其中一U情冉|用来q行 JavaScript 客户端表单验证,q篇文章中提出的Ҏ可以单地用来实现表单验证?

下面的代码将在一个表单被提交时调用。要提交的表单包含三个域Q名U、地址和邮政编码。ؓ了实现v来比较简单,我们只验证每个域都不能ؓI,q且邮政~码必须是数字。下面的 JavaScript 代码完成q一功能Q?

function validation() {

var doc = document.forms[0];

var msg = "";

if (doc.Name.value == "") {

msg += "- Name is missing\n";

}

if (doc.Address.value == "") {

msg += "- Address is missing\n";

}

if (doc.ZipCode.value == "") {

msg += "- Zip code is missing\n";

}

var zip = new String(doc.ZipCode.value);

if (zip.search(/^[0-9][0-9][0-9][0-9][0-9]$/)==-1) {

msg += "- Enter valid Zip code";

}

if (msg == "") {

doc.submit;

} else {

msg = "Please correct the following validation errors and re-submit:\n\n" + msg;

alert(msg);

}

}

在用h交表单时Q这个函数就会被调用。对函数的调用是在一?HTML 按钮?onSubmit 事g中实现的?

<input type="button" type="submit" value="submit" onClick="validation()">

验证函数查每个域是否为空。如果发C一个空|那么׃在验证消息变?msg 后面d一个出错消息。此外,q用了一个正则表辑ּ来验证邮政编码域的格式。在q里Q我们只接受五位数的国地区邮政~码。如果发现有M错误Q即 msg 变量不ؓI)Q那么程序就会显CZ个错误消息;否则的话Q程序就会提交表单?

一门强大的语言

JavaScript 已经发展成熟ZU功能完备的语言Q能够用来构建强大的应用E序。它是对h非连接性天性的 Web 界面的一个完的补充Q能够在不与 Web 服务器交互的情况下完成很多客L操作?




]]>
վ֩ģ壺 ĺ| | | ʯʨ| | ̨| | | | | ̫ԭ| Դ| ˴| | | | | | | | | ɽ| ˮ| | ʲ| ۲| | | ʡ| | | | | | | | | | | ˮ| |