??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜激情视频,国产亚洲精品看片在线观看,亚洲性久久久影院http://www.tkk7.com/keweibo/category/25492.html一? Java 多能 C#,Delphi,Powerbuilder ... <br> <script type="text/javascript"><!-- google_ad_client = "ca-pub-1944176156128447"; /* 468x15, 创徏?09-2-25 */ google_ad_slot = "5582725142"; google_ad_width = 468; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>zh-cnThu, 24 Jul 2014 21:58:19 GMTThu, 24 Jul 2014 21:58:19 GMT60JavaScript中实现函数重载和参数默认??http://www.tkk7.com/keweibo/articles/416152.htmlKeKeThu, 24 Jul 2014 01:22:00 GMThttp://www.tkk7.com/keweibo/articles/416152.htmlhttp://www.tkk7.com/keweibo/comments/416152.htmlhttp://www.tkk7.com/keweibo/articles/416152.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/416152.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/416152.html转自Q?a >http://www.2cto.com/kf/201208/149413.html

参数默认值是指在调用函数Ӟ若省略了某个实参Q函C自动参数分配一个默认|使得函数调用的方便性和灉|性大大提高?/p>

举个例子Q比?a style="color: rgb(51,51,51); font-size: 14px; text-decoration: none" class="keylink" target="_blank">PHP中的字符串截取函数substr(string,start,length)Q当不指定lengthӞ函数默认截取字W串中start位置到字W串l束Q而如果指定了lengthQ则截取从start位置开始的以length为长度的字符Ԍ所以如果调用的是substr('http://www.hualai.net.cn',11,6)Q则q回的是hualaiQ如果省略掉最后一个参敎ͼsubstr('http://www.hualai.net.cn',11)Q则q回hualai.net.cn?/p>

再比如jQuery框架中,$(selector).html()Ҏ是获取该元素内的HTML代码Q?(selector).html(content)则是讄该元素内的HTML。我们知道,在C语言中,我们可以通过如下形式来ؓ函数参数讄默认|

[cpp] 
void foo(int a, int b = 1, bool c = false);   
?a style="color: rgb(51,51,51); font-size: 14px; text-decoration: none" class="keylink" target="_blank">Java中,则可以通过函数重蝲来设|函数参数默认|

[java]
public void foo(int a){   
    foo(a, 1);   
}   
public void foo(int a, int b){   
    foo(a, b, false);   
}   
public void foo(int a, int b, bool c){   
    //函数内容   
}   
而在JavaScript中,如何像jQuery那样讄函数参数默认值呢QJavaScript中ƈ没有像C语言中定义函数时直接在参数后面赋值的ҎQ也没有像Java里那L函数重蝲Q但我们可以通过JavaScriptҎ中的一个arguments只读变量数组来实玎ͼ具体如下Q?/p>

[js] 
function foo(){   
    var a = arguments[0] ? arguments[0] : 1;   
    var b = arguments[1] ? arguments[1] : false;   
    //函数内容   
}   
以上是通过判断参数是否存在Q若不存在则默认值附l变量,而我们可以通过判断参数的类型来实现重蝲Q?/p>

[js] 
function foo(){   
    if(typeof arguments[0] == 'string')    
        alert('参数cd为字W串');    
    else if(typeof arguments[0] == 'number')    
        alert('参数cd为数?);    
}   
或者:

[js] 
function foo(){   
    if(arguments[0].constructor == String)    
        alert('参数cd为字W串');    
    else if(arguments[0].constructor == Number)    
        alert('参数cd为数?);    
}   



Ke 2014-07-24 09:22 发表评论
]]>
javascript 计算日期相差的天?/title><link>http://www.tkk7.com/keweibo/articles/395722.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Tue, 26 Feb 2013 02:00:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/395722.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/395722.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/395722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/395722.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/395722.html</trackback:ping><description><![CDATA[<font face="Verdana"><html><br /> <head><br />  <script type="text/javascript"><br />   function moreThanOneMonth(dt)<br />   {<br />    var s1=new Date(dt.replace(/-/g, "/")); //日期格式为yyyy-mm-dd转换成yyyy/mm/dd<br />    var s2=new Date();<br />    var time= s2.getTime() - s1.getTime(); <br />    var days = parseInt(time / (1000 * 60 * 60 * 24));<br />    if(days > 30)<br />     return true;<br />    else<br />     return false;<br />   }<br />   function load(dt)<br />   {<br />    if( checkDate(dt) )<br />    {<br />     alert("days > 30");<br />    }<br />    else<br />    {<br />     alert("days < 30");<br />    }<br />   }<br />  </script><br /> </head><br /> <body onLoad="load('2013-01-01')"><br /> </body><br /></html></font><img src ="http://www.tkk7.com/keweibo/aggbug/395722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2013-02-26 10:00 <a href="http://www.tkk7.com/keweibo/articles/395722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript倒计时自动蟩转功?/title><link>http://www.tkk7.com/keweibo/articles/362008.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Tue, 25 Oct 2011 07:03:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/362008.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/362008.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/362008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/362008.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/362008.html</trackback:ping><description><![CDATA[<div><center><br /><font size=5 color="Fuchsia"> 修改成功</font><br /><br><br /><font size=3 color="red"><span id="jump">3</span> U后自动跌{到购物R面?lt;/font><br /></center><br /><script language="JavaScript"><br /> function countDown(secs){<br />       jump.innerText=secs;//用于改变id=jump中的U数的显C?br />       if(--secs>=0){<br />       setTimeout( "countDown(" +secs+ ")" ,1000);//每隔1000毫秒执行一个countDown<br /><br />QsecsQ方?br />       }else{<br />        location.href = 'cart.jsp';//重定向的面<br />    }<br />  }<br />    countDown(3);<br /></script></div><img src ="http://www.tkk7.com/keweibo/aggbug/362008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2011-10-25 15:03 <a href="http://www.tkk7.com/keweibo/articles/362008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用JavaScript判断两个日期相差天数http://www.tkk7.com/keweibo/articles/353274.htmlKeKeTue, 28 Jun 2011 08:29:00 GMThttp://www.tkk7.com/keweibo/articles/353274.htmlhttp://www.tkk7.com/keweibo/comments/353274.htmlhttp://www.tkk7.com/keweibo/articles/353274.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/353274.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/353274.html<script type="text/javascript">
    var st = new Date(‘2011/01/28 16:22:00’);
    var et = new Date(‘2011/03/28 16:22:00’);
    if( (et.getTime()-st.getTime())/1000/60/60/24 > 31 ) {
        alert("時間間隔不能出31?);
    }
</script>


Ke 2011-06-28 16:29 发表评论
]]>
jQuery+DWR動態R輯表格Scripthttp://www.tkk7.com/keweibo/articles/306929.htmlKeKeTue, 22 Dec 2009 08:46:00 GMThttp://www.tkk7.com/keweibo/articles/306929.htmlhttp://www.tkk7.com/keweibo/comments/306929.htmlhttp://www.tkk7.com/keweibo/articles/306929.html#Feedback1http://www.tkk7.com/keweibo/comments/commentRss/306929.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/306929.html     <script type="text/javascript" src="<%=root %>/dwr/engine.js"></script>
    <script type="text/javascript" src="<%=root %>/publicJS/jquery-1.3.1.js"></script>
    <script type="text/javascript">
        $(function(){
            //edit table可編輯表?br />             var numTD = $("#datatable tbody td.edit");//排除掉不能被修改的單元格
            numTD.dblclick(function(){
                var inputobj = $("<input type='text'>");//新徏文本輸入?br />                 var tdobj = $(this);//被編輯的單元?br />                 var text = tdobj.html();
               
                inputobj.val(text);
                //important 一定要在插入文本框前進行判斷
                if(tdobj.children("input").length > 0){
                    return false;
                }
                tdobj.html("");
                inputobj.width(tdobj.width());
               
                inputobj.appendTo(tdobj);
                inputobj.trigger("focus").trigger("select");
                //L文本框的雙擊事g
                inputobj.click(function(){
                    return false;
                });
                //處理늛事g
                inputobj.keyup(function(event){
                    //獲取當前按鍵的?br />                     //jQuery的event象上有一個which的屬性可以獲得鍵盤按늚鍵?br />                     var keycode = event.which;
                    //處理回車的情?br />                     if(keycode == 13){
                        //獲取當前文本框的內容
                        var inputtext = $(this).val();
                        //td的內容修Ҏ文本框珠內容
                        tdobj.html(inputtext);
                        var v_id = tdobj.parent().children().eq(1).html();
                        var column = tdobj.attr("id");
                       
                        if(column == "roleName"){
                            systemDaoAjax.updateRole({id : v_id,
                                            roleName : tdobj.parent().children("#roleName").html(),
                                            createUser : $("#hidden_username").val()
                                                }, null);
                        }else if(column == 'roleDesc'){
                            systemDaoAjax.updateRole({id : v_id,
                                            roleDesc : tdobj.parent().children("#roleDesc").html(),
                                            createUser : $("#hidden_username").val()
                                                }, null);
                        }
                    }
                    //處理ESC的情?br />                     if(keycode == 27){
                        //td中的內容原來為原先的值text
                        tdobj.html(text);
                    }
                });
                //文本框失ȝ點事?與ESC事g一?br />                 inputobj.blur(function(){
                    //td中的內容原來為原先的值text
                    tdobj.html(text);
                });
            });
        });
        function checkUserName(){
            var username = document.getElementById("username").value;
            if(!username==""){
                systemDaoAjax.validateUserName(username, function userNameCallback(data){
                    if(data){
                        document.getElementById("saveButton").disabled = false;
                        document.getElementById("feedBackMessage").style.display='none';
                        setCheckbox();//a置或者清I篩選框
                    }else{
                        document.getElementById("saveButton").disabled = true;
                        document.getElementById("feedBackMessage").style.display='block';
                    }
                });
            }
        }
        function setCheckbox(){
            var checkitem = document.getElementsByName("roleIdCheckbox")
            systemDaoAjax.getRoleByUserName(document.getElementById("username").value, function funcRoleCallback(roleArray){
                for(var i=0; i<checkitem.length; i++) {
                    checkitem[i].checked=false;
                    for(var j=0; j<roleArray.length; j++){
                        if(checkitem[i].value==roleArray[j])
                            checkitem[i].checked=true;                           
                    }
                }
            });
        }
        function saveUserRole(){
            var arrays = new Array();
            var items = document.getElementsByName("roleIdCheckbox")
            for(i=0; i<items.length; i++) {
                if(items[i].checked)
                    arrays.push(items[i].value);
            }
            if(arrays.length>0){
                systemDaoAjax.saveUserRole(document.getElementById("username").value, arrays, function saveUserRoleCallback(data){
                    if(data)
                        alert("操作成功!");
                    else
                        alert("注意:操作失敗!");
                });
            }else{
                alert("請選擇要授權的角?");
            }
        }
    </script>


Ke 2009-12-22 16:46 发表评论
]]>
JS的正则表辑ּ http://www.tkk7.com/keweibo/articles/186187.htmlKeKeFri, 14 Mar 2008 01:29:00 GMThttp://www.tkk7.com/keweibo/articles/186187.htmlhttp://www.tkk7.com/keweibo/comments/186187.htmlhttp://www.tkk7.com/keweibo/articles/186187.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/186187.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/186187.html [code] function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]

//校验d名:只能输入5-20个以字母开头、可带数字?#8220;_”?#8220;.”的字?
[code] function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } [/code]

//校验用户姓名Q只能输?-30个以字母开头的字串
[code] function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校验密码Q只能输?-20个字母、数字、下划线 [code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } [/code]

//校验普通电话、传真号码:可以“+”开_除数字外Q可含有“-”
[code] 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 } [/code]

//校验手机LQ必M数字开_除数字外Q可含有“-”
[code] function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]

//校验邮政~码
[code] 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 } [/code]

//校验搜烦关键?
[code] 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 } [/code]

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

正则表达?/span>使用详解

?

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

基本语法

在对正则表达?/span>的功能和作用有了初步的了解之后,我们来具体看一?span class="hilite2">正则表达?/span>的语法格式?

正则表达?/span>的Ş式一般如下:  

/love/  其中位于“/”定界W之间的部分是要在目标对象中q行匚w的模式。用户只要把希望查找匚w对象的模式内Ҏ?#8220;/”定界W之间即可。ؓ了能够用户更加灉|的定制模式内容,正则表达?/span>提供了专门的“元字W?#8221;。所谓元字符是指那些在正则表达?/span>中具有特D意义的专用字符Q可以用来规定其前导字符Q即位于元字W前面的字符Q在目标对象中的出现模式?
较ؓ常用的元字符包括Q?“+”Q?“*”Q以?“?”?

“+”元字W规定其前导字符必须在目标对象中q箋出现一ơ或多次?

“*”元字W规定其前导字符必须在目标对象中出现零次或连l多ơ?

“?”元字W规定其前导对象必须在目标对象中q箋出现零次或一ơ?

下面Q就让我们来看一?span class="hilite2">正则表达?/span>元字W的具体应用?

/fo+/  因ؓ上述正则表达?/span>中包?#8220;+”元字W,表示可以与目标对象中?“fool”, “fo”, 或?“football”{在字母f后面q箋出现一个或多个字母o的字W串相匹配?

/eg*/  因ؓ上述正则表达?/span>中包?#8220;*”元字W,表示可以与目标对象中?“easy”, “ego”, 或?“egg”{在字母e后面q箋出现零个或多个字母g的字W串相匹配?

/Wil?/  因ؓ上述正则表达?/span>中包?#8220;Q?#8221;元字W,表示可以与目标对象中?“Win”, 或?#8220;Wilson”,{在字母i后面q箋出现零个或一个字母l的字W串相匹配?

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

{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 ơ。例如,"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h?'o?'。请注意在逗号和两个数之间不能有空根{?

除了元字W之外,用户q可以精指定模式在匚w对象中出现的频率。例如,/jim {2,6}/ 上述正则表达?/span>规定字符m可以在匹配对象中q箋出现2-6ơ,因此Q上q?span class="hilite2">正则表达?/span>可以同jimmy或jimmmmmy{字W串相匹配?
在对如何使用正则表达?/span>有了初步了解之后Q我们来看一下其它几个重要的元字W的使用方式?
[code] \sQ用于匹配单个空格符Q包括tab键和换行W; \SQ用于匹配除单个I格W之外的所有字W; \dQ用于匹配从0?的数字; \wQ用于匹配字母,数字或下划线字符Q?\WQ用于匹配所有与\w不匹配的字符Q?. Q用于匹配除换行W之外的所有字W?[/code]
Q说明:我们可以把\s和\S以及\w和\W看作互ؓ逆运)
下面Q我们就通过实例看一下如何在正则表达?/span>中用上q元字符?
/\s+/ 上述正则表达?/span>可以用于匚w目标对象中的一个或多个I格字符?
/\d000/ 如果我们手中有一份复杂的财务报表Q那么我们可以通过上述正则表达?/span>轻而易丄查找到所有总额辑֍元的N?
除了我们以上所介绍的元字符之外Q?span class="hilite2">正则表达?/span>中还h另外一U较为独特的专用字符Q即定位W。定位符用于规定匚w模式在目标对象中的出C|?较ؓ常用的定位符包括Q?“^”, “$”, “\b” 以及 “\B”?
[code] “^”定位W规定匹配模式必d现在目标字符串的开?“$”定位W规定匹配模式必d现在目标对象的结?“\b”定位W规定匹配模式必d现在目标字符串的开头或l尾的两个边界之一 “\B”定位W则规定匚w对象必须位于目标字符串的开头和l尾两个边界之内Q?卛_配对象既不能作ؓ目标字符串的开_也不能作为目标字W串的结?[/code]
同样Q我们也可以?#8220;^”?#8220;$”以及“\b”?#8220;\B”看作是互为逆运的两组定位W。D例来_ /^hell/ 因ؓ上述正则表达?/span>中包?#8220;^”定位W,所以可以与目标对象中以 “hell”, “hello”?#8220;hellhound”开头的字符串相匚w?/ar$/ 因ؓ上述正则表达?/span>中包?#8220;$”定位W,所以可以与目标对象中以 “car”, “bar”?“ar” l尾的字W串相匹配?/\bbom/ 因ؓ上述正则表达?/span>模式?#8220;\b”定位W开_所以可以与目标对象中以 “bomb”, ?“bom”开头的字符串相匚w?man\b/ 因ؓ上述正则表达?/span>模式?#8220;\b”定位W结,所以可以与目标对象中以 “human”, “woman”?“man”l尾的字W串相匹配?
Z能够方便用户更加灉|的设定匹配模式,正则表达?/span>允许使用者在匚w模式中指定某一个范围而不局限于具体的字W。例如:
[code] /[A-Z]/  上述正则表达?/span>会与从A到Z范围内Q何一个大写字母相匚w?/[a-z]/  上述正则表达?/span>会与从a到z范围内Q何一个小写字母相匚w?/[0-9]/  上述正则表达?/span>会与从0?范围内Q何一个数字相匚w?/([a-z][A-Z][0-9])+/ 上述正则表达?/span>会与Q何由字母和数字组成的字符Ԍ?“aB0” {相匚w?[/code]
q里需要提醒用h意的一点就是可以在正则表达?/span>中?“()” 把字W串l合在一赗?#8220;()”W号包含的内容必d时出现在目标对象中。因此,上述正则表达?/span>无法与诸如 “abc”{的字符串匹配,因ؓ“abc”中的最后一个字Wؓ字母而非数字?
如果我们希望?span class="hilite2">正则表达?/span>中实现类似编E逻辑中的“?#8221;q算Q在多个不同的模式中任选一个进行匹配的话,可以使用道W?“|”。例如:/to|too|2/ 上述正则表达?/span>会与目标对象中?“to”, “too”, ?“2” 相匹配?
正则表达?/span>中还有一个较为常用的q算W,卛_定符 “[^]”。与我们前文所介绍的定位符 “^” 不同Q否定符 “[^]”规定目标对象中不能存在模式中所规定的字W串。例如:/[^A-C]/ 上述字符串将会与目标对象中除AQBQ和C之外的Q何字W相匚w。一般来_?#8220;^”出现?“[]”内时p视做否定q算W;而当“^”位于“[]”之外Q或没有“[]”Ӟ则应当被视做定位W?
最后,当用户需要在正则表达?/span>的模式中加入元字W,q查扑օ匚w对象Ӟ可以使用转义W?#8220;\”。例如:/Th\*/  上述正则表达?/span>会与目标对象中?#8220;Th*”而非“The”{相匚w?
在构?span class="hilite2">正则表达?/span>之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先序来求倹{优先如下Q?
[code] 1Q\ 转义W?2Q?), (?:), (?=), [] 圆括号和Ҏ?3Q?, +, ?, {n}, {n,}, {n,m} 限定W?4Q^, $, \anymetacharacter 位置和顺?5Q|“?#8221;操作 [/code]

使用实例
?span class="hilite1">JavaScript
1.2中带有一个功能强大的RegExp()对象Q可以用来进?span class="hilite2">正则表达?/span>的匹配操作。其中的test()Ҏ可以验目标对象中是否包含匚w模式Qƈ相应的返回true或false?
我们可以使用JavaScript~写以下脚本Q验证用戯入的邮g地址的有效性?
[code] <html> <head>   <script language="Javascript1.2">      <!-- start hiding      function verifyAddress(obj)      {       var email = obj.email.value;       var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;       flag = pattern.test(email);       if(flag)       {        alert(“Your email address is correct!”);        return true;       }       else        {         alert(“Please try again!”);         return false;         }       }      // stop hiding -->     </script>   </head>   <body>    <form onSubmit="return verifyAddress(this);">     <input name="email" type="text">     <input type="submit">     </form>   </body> </html> [/code]

正则表达?/span>对象
本对象包?span class="hilite2">正则表达?/span>模式以及表明如何应用模式的标志?
[code] 语法 1 re = /pattern/[flags] 语法 2 re = new RegExp("pattern",["flags"]) [/code]
参数
re
必选项。将要赋gؓ正则表达?/span>模式的变量名?

Pattern
必选项。要使用?span class="hilite2">正则表达?/span>模式。如果用语?1Q用 "/" 字符分隔模式。如果用语法 2Q用引号模式引h?

Flags
可选项。如果用语?2 要用引号?flag 引v来。标志可以组合用,可用的有Q?
[code] g Q全文查扑և现的所?patternQ?i Q忽略大写Q?m Q多行查找) [/code]

CZ
下面的示例创Z个包?span class="hilite2">正则表达?/span>模式及相x志的对象(re)Q向您演C?span class="hilite2">正则表达?/span>对象的用法。在本例中,作ؓl果?span class="hilite2">正则表达?/span>对象又用?match Ҏ中:
[code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = new RegExp("ain","g"); // 创徏正则表达?/span>对象?r = s.match(re); // 在字W串 s 中查扑֌配?return(r); } [/code]

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

exec Ҏ
?span class="hilite2">正则表达?/span>模式在字W串中运行查找,q返回包含该查找l果的一个数l?
rgExp.exec(str)

参数

rgExp
必选项。包?span class="hilite2">正则表达?/span>模式和可用标志的正则表达?/span>对象?

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

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

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

CZ\\
下面的例子D例说明了 exec Ҏ的用法:
[code] function RegExpTest() { var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()) if (ver >= 5.5){ // 试 JScript 的版本?var src = "The rain in Spain falls mainly in the plain."; var re = /\w+/g; // 创徏正则表达?/span>模式?var arr; while ((arr = re.exec(src)) != null) document.write(arr.index + "-" + arr.lastIndex + arr + "\t"); } else{ alert("请?JScript 的更新版?); } } [/code]

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
必选项。包?span class="hilite2">正则表达?/span>模式或可用标志的正则表达?/span>对象?

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

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

CZ
下面的例子D例说明了 test Ҏ的用法:
[code] function TestDemo(re, s) { var s1; // 声明变量?// 查字W串是否存在正则表达?/span>?if (re.test(s)) // 试是否存在?s1 = " contains "; // s 包含模式?else s1 = " does not contain "; // s 不包含模式?return("'" + s + "'" + s1 + "'"+ re.source + "'"); // q回字符丌Ӏ?} [/code]

函数调用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 Ҏ
使用正则表达?/span>模式对字W串执行查找Qƈ包含查扄l果作ؓ数组q回。\\
stringObj.match(rgExp)

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

rgExp
必选项。ؓ包含正则表达?/span>模式和可用标志的正则表达?/span>对象。也可以是包?span class="hilite2">正则表达?/span>模式和可用标志的变量名或字符串文字?

说明\\
如果 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 中包含所有匹配?

CZ\\
下面的示例演CZmatch Ҏ的用法:
[code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = /ain/i; // 创徏正则表达?/span>模式?r = s.match(re); // 试匚w搜烦字符丌Ӏ?return(r); // q回W一ơ出?"ain" 的地斏V?} [/code]
q回|ain

本示例说明带 g 标志讄?match Ҏ的用法?
[code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = /ain/ig; // 创徏正则表达?/span>模式?r = s.match(re); // 试d配搜索字W串?return(r); // q回的数l包含了所?"ain" // 出现的四个匹配?} [/code]
q回|ain,ain,ain,ain

上面几行代码演示了字W串文字?match Ҏ的用法?
[code] var r, re = "Spain"; r = "The rain in Spain".replace(re, "Canada"); return r; [/code]
q回|The rain in Canada

search Ҏ
q回?span class="hilite2">正则表达?/span>查找内容匚w的第一个子字符串的位置?

stringObj.search(rgExp)

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

rgExp
必选项。包?span class="hilite2">正则表达?/span>模式和可用标志的正则表达?/span>对象?

说明

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

CZ\\
下面的示例演CZ search Ҏ的用法?
[code] function SearchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain."; re = /falls/i; // 创徏正则表达?/span>模式?r = s.search(re); // 查找字符丌Ӏ?return(r); // q回 Boolean l果?} [/code]
q回|18


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

q里有一些可能会遇到?span class="hilite2">正则表达?/span>CZQ?
[code] JScript VBScript 匚w /^\[ \t]*$/ "^\[ \t]*$" 匚w一个空白行?/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID L是否׃?位数字,一个连字符以及一?位数字组成?/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匚w一?HTML 标记?[/code]

下表是元字符及其?span class="hilite2">正则表达?/span>上下文中的行为的一个完整列表:

字符 描述
\ 下一个字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"?span class="hilite2">正则表达?/span>中可以?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>
在构?span class="hilite2">正则表达?/span>之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先权序来求倹{?

下表从最高优先到最低优先列出各种正则表达?/span>操作W的优先权顺序:
[code] 操作W?描述 \ 转义W?(), (?:), (?=), [] 圆括号和Ҏ?*, +, ?, {n}, {n,}, {n,m} 限定W?^, $, \anymetacharacter 位置和顺?| “?#8221;操作 [/code]

普通字W?

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

最单的正则表达?/span>是一个单独的普通字W,可以匚w所搜烦字符串中的该字符本n。例如,单字W模?'A' 可以匚w所搜烦字符串中M位置出现的字?'A'。这里有一些单字符正则表达?/span>模式的示例:
[code] /a/ /7/ /M/ [/code]
{h?VBScript 单字W?span class="hilite2">正则表达?/span>为:
[code] "a" "7" "M" [/code]
可以多个单字符l合在一起得C个较大的表达式。例如,下面?JScript 正则表达?/span>不是别的Q就是通过l合单字W表辑ּ 'a'?7'以及 'M' 所创徏出来的一个表辑ּ?

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

"a7M"
h意这里没有连接操作符。所需要做的就是将一个字W放在了另一个字W后面?

Ke 2008-03-14 09:29 发表评论
]]>
javascript获取当前面url值及url中的参数?/title><link>http://www.tkk7.com/keweibo/articles/186186.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 14 Mar 2008 01:25:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/186186.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/186186.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/186186.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/186186.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/186186.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed"> <tbody> <tr> <td> <div id="btfpbhp" class="cnt" id="blog_text"> <p>一个简单用的例子Q?br /> <SCRIPT LANGUAGE="JavaScript"><br /> <!--<br /> var q = location.search.substr(1);<br /> var qs = q.split("&");<br /> if (qs) {<br /> for (var i=0;i<qs.length;i++) {<br />    alert("QueryName:"+qs[i].substring(0,qs[i].indexOf("="))+"\nQueryValue:"+qs[i].substring(qs[i].indexOf("=")+1))<br /> }<br /> }<br /> //--><br /> </SCRIPT></p> <p>《JAVA权威指南》中的例子:<br />    function    getArgs()   <br />    {   <br />            var    args=new    Object();   <br />            var    query=location.search.substring(1);//获取查询?nbsp;  <br />            var    pairs=query.split(",");//在逗号处断开   <br />            for(var    i=0;i<pairs.length;i++)   <br />            {   <br />                    var    pos=pairs[i].indexOf('=');//查找name=value   <br />                    if(pos==-1)    continue;//如果没有扑ֈpq?nbsp;  <br />                    var    argname=pairs[i].substring(0,pos);//提取name   <br />                    var    value=pairs[i].substring(pos+1);//提取value   <br />                    args[argname]=unescape(value);//存ؓ属?nbsp;  <br />            }   <br />            return    args;//q回对象   <br />    } </p> <p>搜集来的例子Q?br /> <script>   <br />    var    url="http://www.163.com/123.aspx?name=mary&age=23&page=123";   <br />    var    str=url.split("?")[1];   <br />    var    result="";   <br />    function    getParameter(psName){   <br />    if(str.indexOf(psName)!=-1&&(str.substr(str.indexOf(psName)-1,1)=="?"||str.substr(str.indexOf(psName)-1,1)=="&")){   <br />    if(str.substring(str.indexOf(psName),str.length).indexOf("&")!=-1){   <br />    var    Test=str.substring(str.indexOf(psName),str.length);   <br />    result=Test.substr(Test.indexOf(psName),Test.indexOf("&")-Test.indexOf(psName));   <br />    }   <br />    else{   <br />    result=str.substring(str.indexOf(psName),str.length);   <br />    }   <br />    }   <br />    else{   <br />    result="无此参数";   <br />    }   <br />    alert(result);   <br />    }   <br />    getParameter("age");   <br />    </script></p> <p><br /> <script type="text/javascript"><br />                       //var pathname = location.pathname;当前面的URL<br />                       //var href = location.href;当前面中连接的URL<br />                       var q = location.search.substr(1);//前一面的URL<br />                       var qs = q.split("&");<br />                       var m=qs[1].substring(qs[1].indexOf("=")+1);<br />                       var d=qs[2].substring(qs[2].indexOf("=")+1);<br />                       alert("您所l计的日期ؓ"+m+"?+d+"日!");                  <br /> </script><br /> 搜集相关|址Q?a >http://www.ifmiss.com/1/blog/article.asp?id=195</a><br />                         <a >http://blog.chinaunix.net/u/21267/showart.php?id=276569</a></p> </div> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/keweibo/aggbug/186186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2008-03-14 09:25 <a href="http://www.tkk7.com/keweibo/articles/186186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>break语句和continue语句 http://www.tkk7.com/keweibo/articles/176317.htmlKeKeFri, 18 Jan 2008 11:51:00 GMThttp://www.tkk7.com/keweibo/articles/176317.htmlhttp://www.tkk7.com/keweibo/comments/176317.htmlhttp://www.tkk7.com/keweibo/articles/176317.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/176317.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/176317.htmlbreak?/span>continue语句对@环中的代码执行提供了更严格的控制?/span>break语句可以立即退出@环,L再次反复执行M代码Q?/span>continue语句只是退出当前@环,Ҏ控制表达式还允许l箋q行下一ơ@环。例如:

在上面的代码中,for循环从1?/span>10q代变量i。在循环M中,if语句(使用取模q算W)?/span>i的值是否能?/span>5整除。如果能?/span>5整除Q将执行break语句Q警告显C?/span>"4"Q即在退出@环前执行循环的次数。如果用continue语句代替q个例子中的break语句Q结果将不同Q?/span>

q里Q警告将昄"8"Q即执行循环的次数。可能执行的循环L?/span>9Q不q当i的gؓ5Ӟ执?/span>continue语句Q会使@环蟩q表辑ּiNum++Q返回@环开头?/span>

break语句?/span>continue语句都可以与有标{语句联合使用Q返回代码中的特定位|。通常Q当循环内部q有循环Ӟ会这样做Q如下面的例子所C:

在这个例子中Q标{?/span>outermost表示的是W一?/span>for语句。正常情况下Q每?/span>for语句执行10ơ代码块Q意味着iNum++正常情况下将被执?/span>100ơ,在执行完成时Q?/span>iNum应该{于100。这里的break语句有一个参敎ͼ卛_止@环后要蟩转到的语句的标签。这?/span>break语句不止能蟩出内?/span>for语句Q即使用变量j的语句)Q还能蟩出外?/span>for语句Q即使用变量i的语句)。因此,iNum最后的值是55Q因为当i?/span>j的值都{于5Ӟ循环终止。可以以同样的方式?/span>continue语句Q?/span>

在这个例子中Q?/span>continue语句会迫使@环l,不止是内部@环,外部循环也如此。当j{于5时出现这U情况,意味着内部循环减?/span>5ơP代,致iNum的gؓ95?/span>

可以看到Q与break?/span>continue联合使用的有标签语句的功能非常强大,不过q度使用它们会给调试代码带来ȝ。要保使用的标{օ有说明性,不要嵌套太多层@环?/span>



Ke 2008-01-18 19:51 发表评论
]]>
JavaScriptq代语句http://www.tkk7.com/keweibo/articles/176316.htmlKeKeFri, 18 Jan 2008 11:49:00 GMThttp://www.tkk7.com/keweibo/articles/176316.htmlhttp://www.tkk7.com/keweibo/comments/176316.htmlhttp://www.tkk7.com/keweibo/articles/176316.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/176316.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/176316.htmlq代语句又叫循环语句Q声明一l要反复执行的命令,直到满了某些条件ؓ止。@环通常用于q代数组的|因此而得名)Q或者执行重复的术d?/span>ECMAScriptZq种处理提供了四UP代语句?/span>

1. do-while语句

do-while语句是后试循环Q即退出条件在执行q@环内部的代码之后计算。这意味着在计表辑ּ之前Q至会执行循环M一ơ。语法如下:

例如Q?/span>

2. while语句

while语句是前试循环。这意味着退出条件是在执行@环内部的代码之前计算的。因此,循环M可能Ҏ不被执行。语法如下:

例如Q?/span>

3. for语句

for语句是前试循环Q而且在进入@环之前,能够初始化变量,q定义@环后要执行的代码。语法如下:

例如Q?/span>

q段代码定义了初始gؓ0的变?/span>i。只有当条g表达式(i<iCountQ的gؓtrueӞ才进?/span>for循环Q这样@环主体可能不被执行。如果执行了循环MQ那么将执行循环后表辑ּQƈq代变量i?/span>

4. for-in语句

for-in语句是严格的q代语句Q用于枚丑֯象的属性。语法如下:

例如Q?/span>

q里Q?/span>for-in语句用于昄BOM window对象的所有属性。前面讨的方?/span>property- IsEnumerable()?/span>ECMAScript中专门用于说明属性是否可以用for-in语句讉K的方法?/span>



Ke 2008-01-18 19:49 发表评论
]]>
JavaScript中的字符串操?/title><link>http://www.tkk7.com/keweibo/articles/175289.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Mon, 14 Jan 2008 12:09:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/175289.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/175289.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/175289.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/175289.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/175289.html</trackback:ping><description><![CDATA[<span id="rrlxrhx" class="t18">  一、概q?br />     字符串在JavaScript中几乎无处不在,在你处理用户的输?nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u6570_u636E";KeyGate_ads.ShowGgAds(this,"_u6570_u636E",event)' style="border-right: 0px; padding-right: 0px; border-top: 0px; padding-left: 0px; font-weight: normal; padding-bottom: 0px; margin: 0px; border-left: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-bottom: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BR1B4SVCLR_LWI5z26wPqx_B-24_LPNvJl9gDwI23AeDFCBACGAIgrYXQDSgUOABQ1qCA5_j_____AWCdsd6B2AWqAQoyMDAwMDM3NTQxsgEPd3d3Lmtub3dza3kuY29tyAEB2gEiaHR0cDovL3d3dy5rbm93c2t5LmNvbS8zNDEyMzAuaHRtbIACAakCg7aTRJOBgj7IAs_i-ASoAwHoA7QD6AMi6AMg6AMF&num=2&adurl=http://www.zycode.cn/PRODUCTS/solution.htm&client=ca-pub-5186439242807756");GgKwClickStat("数据","www.zycode.cn","afc","2000037541");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u6570_u636E"'>数据</strong></nobr>的时候,在读取或讄DOM对象的属性时Q在操作cookieӞ当然q有更多...。JavaScript的核心部分提供了一l属性和Ҏ用于通用的字W串操作Q如分割字符Ԍ改变字符串的大小写,操作子字W串{?br />     当前的大部分览器也能从强大的正则表辑ּLQ因为它极大地简化了大量的字W串操作dQ不q它也需要你克服一条有些陡峭的学习曲线。在q里Q主要是介绍字符串本w的一些操作,正则表达式会在以后的随笔中涉及? <p>二、字W串的创?br />     创徏一个字W串有几U方法。最单的是用引号一l字W包含v来,可以其赋值给一个字W串变量?br />     var myStr = "Hello, String!";<br />     可以用双引号或单引号字W串包含Q但要注意,作ؓ界定字符串的一对引号必L相同的,不能L?br />     像var myString = "Fluffy is a pretty cat.'; q样的声明就是非法的?br />     允许使用两种引号Q得某些操作变得简单,比如一U嵌入另外一U:<br />     document.write("<img src='img/logo.jpg' height='30' width='100' alt='Logo'>");</p> <p>    我们在上面脚本创Z几个字符Ԍ但本质上Q它们ƈ不是真正的字W串对象Q准地_它们是字W串cd的倹{要创徏一个字W串对象Q可使用如下语句Qvar strObj = new String("Hello, String!");<br />     使用typeofq算W查看会发现Q上面的myStrcd为stringQ而strObjcd为object?br />     <br />     如果想知道字W串的长度,使用其length属性:string.length?br />     得到字符串的指定位置的字W用方法:string.charAt(index);</p> <p>三、字W串的拼?br /> 问题Q?br />     两个或多个字符串拼接ؓ一个大的字W串<br /> <nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u89E3_u51B3_u65B9_u6848";KeyGate_ads.ShowGgAds(this,"_u89E3_u51B3_u65B9_u6848",event)' style="border-right: 0px; padding-right: 0px; border-top: 0px; padding-left: 0px; font-weight: normal; padding-bottom: 0px; margin: 0px; border-left: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-bottom: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BWmaUSVCLR_LWI5z26wPqx_B-zZ7SPumuoJ0FwI23AfDXHBAIGAggrYXQDSgUOABQ8JaUovr_____AWCdsd6B2AWqAQoyMDAwMDM3NTQxsgEPd3d3Lmtub3dza3kuY29tyAEB2gEiaHR0cDovL3d3dy5rbm93c2t5LmNvbS8zNDEyMzAuaHRtbKkCg7aTRJOBgj7IArm0jASoAwHoA7QD6AMi6AMg6AMF&num=8&adurl=http://www.boschsecurity.com.cn&client=ca-pub-5186439242807756");GgKwClickStat("解决Ҏ","www.boschsecurity.com.cn","afc","2000037541");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u89E3_u51B3_u65B9_u6848"'>解决Ҏ</strong></nobr>Q?br />     非常单,q一?+"两个字W串"相加"Q?br />     var longString = "One piece " + "plus one more piece."; <br />     要将多个字符串篏Uؓ一个字W串Q还可以使用"+="操作W:<br />     var result = "";<br />     result += "My name is Anders"<br />     result += " and my age is 25";   <br />     <br />     要在字符串中d换行W,需要用{义字W?\n"Q?br />     var confirmString = "You did not enter a response to the last " +<br />         "question.\n\nSubmit form anyway?";<br />     var confirmValue = confirm(confirmString);<br />     但这U方法只能用在像警告、确认对话框之类的情况下Q如果将q段文本作ؓHTML内容呈现Q就无效了,此时?<br>"代替它:<br />     var htmlString = "First line of string.<br>Second line of string.";<br />     document.write(htmlString);</p> <p>    String对象q提供了Ҏconcat()Q它完成?+"相同的功能:<br />     string.concat(value1, value2, ...)<br />     不过concat()Ҏ昄不如"+"来得直观z?/p> <p>四、访问字W串的子?br /> 问题Q?br />     获得一字符串的一部分的副本?br /> 解决ҎQ?br />     使用substring()或slice()Ҏ(NN4+, IE4+)Q下面说明它们的具体用法?br />     substring()?nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u539F_u578B";KeyGate_ads.ShowGgAds(this,"_u539F_u578B",event)' style="border-right: 0px; padding-right: 0px; border-top: 0px; padding-left: 0px; font-weight: normal; padding-bottom: 0px; margin: 0px; border-left: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-bottom: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BR1B4SVCLR_LWI5z26wPqx_B-24_LPNvJl9gDwI23AeDFCBACGAIgrYXQDSgUOABQ1qCA5_j_____AWCdsd6B2AWqAQoyMDAwMDM3NTQxsgEPd3d3Lmtub3dza3kuY29tyAEB2gEiaHR0cDovL3d3dy5rbm93c2t5LmNvbS8zNDEyMzAuaHRtbIACAakCg7aTRJOBgj7IAs_i-ASoAwHoA7QD6AMi6AMg6AMF&num=2&adurl=http://www.zycode.cn/PRODUCTS/solution.htm&client=ca-pub-5186439242807756");GgKwClickStat("原型","www.zycode.cn","afc","2000037541");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u539F_u578B"'>原型</strong></nobr>为:  string.substring(from, to)<br />     W一个参数from指定了子字符串在原字W串中的起始位置(Z0的烦?Q第二个参数to是可选的Q它指定了子字符串在原字W串的结束位|?Z0的烦?Q一般情况下Q它应比from大,如果它被省略Q那么子字符串将一直到原字W串的结֤?br />     如果参数from不小心比参数to大了会怎样QJavaScript会自动调解子字符串的h位置Q也是_substring()L从两个参C较小的那个开始,到较大的那个l束。不q要注意Q它包含起始位置的那个字W,但不包含l束位置的那个字W?br />     var fullString = "Every dog has his day.";<br />     var section = fullString.substring(0, 4); // section is "Ever".<br />     section = fullString.substring(4, 0);     // section is also "Ever".<br />     section = fullString.substring(1, 1);     // section is an empty string.<br />     section = fullString.substring(-2, 4); // section is "Ever", same as fullString.substring(0, 4);    slice()的原型ؓQ?nbsp; string.slice(start, end)<br />     参数start表示子串的v始位|,如果敎ͼ那么可以理解为倒数W几个开始,例如-3表示从倒数W三个开始;参数end表示l束位置Q与start一P它也可以敎ͼ其含义也表示到倒数W几个结束。slice()的参数可以ؓ负数Q所以要比substring()更加灉|Q但没那么宽容了Q如果start比end要大Q它返回一个空字符?CZ??br />     q有一个方法是substr()Q其原型为: string.substr(start, length)<br />     从原型可以看出它的参数的含义Qstart表示起始位置Qlength则表C子字符串的长度。JavaScript标准不提倡用该Ҏ?br /> 五、字W串的大写转换<br /> 问题Q?br />     在你的页面上有文本框接收用户的输入信息,比如城市Q然后你会根据他的城市的不同做不同的处理Q这时自然会用到字符串比较,那么在比较前Q最好进行大写转换Q这样只要考虑转换后的情Ş卛_Q或者要在页面上攉数据Q然后将q些数据存储?nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u6570_u636E_u5E93";KeyGate_ads.ShowGgAds(this,"_u6570_u636E_u5E93",event)' style="border-right: 0px; padding-right: 0px; border-top: 0px; padding-left: 0px; font-weight: normal; padding-bottom: 0px; margin: 0px; border-left: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-bottom: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BR1B4SVCLR_LWI5z26wPqx_B-24_LPNvJl9gDwI23AeDFCBACGAIgrYXQDSgUOABQ1qCA5_j_____AWCdsd6B2AWqAQoyMDAwMDM3NTQxsgEPd3d3Lmtub3dza3kuY29tyAEB2gEiaHR0cDovL3d3dy5rbm93c2t5LmNvbS8zNDEyMzAuaHRtbIACAakCg7aTRJOBgj7IAs_i-ASoAwHoA7QD6AMi6AMg6AMF&num=2&adurl=http://www.zycode.cn/PRODUCTS/solution.htm&client=ca-pub-5186439242807756");GgKwClickStat("数据?,"www.zycode.cn","afc","2000037541");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u6570_u636E_u5E93"'>数据?/strong></nobr>Q而数据库恰好只接收大写字W;在这些情况下Q我们都要考虑对字W串q行大小写{换?br /> 解决ҎQ?br />     使用toLowerCase()和toUpperCase()ҎQ?br />     var city = "ShanGHai"; <br />     city = city.toLowerCase();  // city is "shanghai" now.<br /> 六、判断两个字W串是否相等<br /> 问题Q?br />     比如Q你x用户的输入g已知的字W串比较<br /> 解决ҎQ?br />     先将用户的输入值全部{换ؓ大写Q或写Q,然后再行比较Q?br />     var name = document.form1.txtUserName.value.toLowerCase();<br />     if(name == "urname")<br />     {<br />         // statements go here.<br />     }<br />     JavaScript有两U相{运符。一U是完全向后兼容的,标准?=="Q如果两个操作数cd不一_它会在某些时候自动对操作数进行类型{换,考虑下面的赋D句:<br />     var strA = "i love you!";<br />     var strB = new String("i love you!");<br />     q两个变量含有相同的字符序列Q但数据cd却不同,前者ؓstringQ后者ؓobjectQ在使用"=="操作W时QJavaScript会尝试各U求|以检两者是否会在某U情况下相等。所以下面的表达式结果ؓtrueQ?strA == strB?br />     W二U操作符?严格"?==="Q它在求值时不会q么宽容Q不会进行类型{换。所以表辑ּstrA === strB的gؓfalseQ虽然两个变量持有的值相同?br />     有时代码的逻辑要求你判断两个值是否不相等Q这里也有两个选择Q?!="和严格的"!=="Q它们的关系qg"=="?==="?br /> 讨论Q?br />     "=="?!="在求值时会尽可能地寻扑ր的匚w性,但你可能q是惛_比较前进行显式的cd转换Q以"帮助"它们完成工作。比如,如果惛_断一个用L输入|字符Ԍ是否{于一个数字,你可以让"=="帮你完成cd转换Q?br />     if(document.form1.txtAge.value == someNumericVar) { ... }<br />     也可以提前{换:<br />     if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }<br />     如果你比较习惯于强类型的~程语言(比如C#,Java{?Q那么这里你可以延箋你的习惯(cd转换)Q这样也会增强程序的可读性?/p> <p>    有一U情况需要注意,是计算机的区域讄。如果用"<"?>"来比较字W串Q那么JavaScript把它们作为Unicode来比较,但显ӞZ在浏览网|不会把文本当作Unicode来阅?) 比如在西班牙语中Q按照传l的排序Q?ch"作Z个字W排?c"?d"之间。localeCompare()提供了一U方式,可以帮助你用默认区域设|下的字W排序规则?br />     var strings;  // 要排序的字符串数l,假设已经得到初始?br />     strings.sort(function(a,b) { return a.localeCompare(b) });  // 调用sort()Ҏq行排序</p> <p>七、字W串的查?br /> 问题Q?br />     判断一个字W串是否包含另一个字W串?br /> 解决ҎQ?br />     使用string的indexOf()ҎQ?br />     strObj.indexOf(subString[, startIndex])<br />     strObjq行判断的字W串QsubString在strObj查找的子字符ԌstartIndex是可选的Q表C查扄开始位|?Z0的烦?Q如果startIndex省略Q则从strObj开始处查找Q如果startIndex于0Q则?开始,如果startIndex大于最大烦引,则从最大烦引处开始?br />     indexOf()q回strObj中subString的开始位|,如果没有扑ֈQ则q回-1。在脚本中,可以q么使用Q?br />     if(largeString.indexOf(shortString) != -1)<br />     {<br />         // 如果包含Q进行相应处理;<br />     }<br />     也许一个字W串会包含另一字符串不止一ơ,q时W二个参数startIndex也许会派上用场,下面q个函数演示如何求得一个字W串包含另外一个字W串的次敎ͼ<br />     function countInstances(mainStr, subStr)<br />     {<br />         var count = 0;<br />         var offset = 0;<br />         do<br />         {<br />             offset = mainStr.indexOf(subStr, offset);<br />             if(offset != -1)<br />             {<br />                 count++;<br />                 offset += subStr.length;<br />             }<br />         }while(offset != -1)<br />         return count;<br />     }<br />     String对象有一个与indexOf()对应的方法,lastIndexOf()Q?br />     strObj.lastIndexOf(substring[, startindex])<br />     strObjq行判断的字W串QsubString在strObj查找的子字符ԌstartIndex是可选的Q表C查扄开始位|?Z0的烦?Q如果startIndex省略Q则从strObj末尾处查找,如果startIndex于0Q则?开始,如果startIndex大于最大烦引,则从最大烦引处开始。该Ҏ自右向左查找Q返回subString在strObj中最后出现的位置Q如果没有找刎ͼq回-1?/p> <p>八、在Unicode值和字符串中的字W间转换<br /> 问题Q?br />     获得一个字W的Unicode~码|反之亦然?br /> 解决ҎQ?br />     要获得字W的Unicode~码Q可以用string.charCodeAt(index)ҎQ其定义为:<br />     strObj.charCodeAt(index)<br />     index为指定字W在strObj对象中的位置Q基?的烦引)Q返回gؓ0?5535之间?6位整数。例如:<br />     var strObj = "ABCDEFG";<br />     var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67<br />     如果index指定的烦引处没有字符Q则q回gؓNaN?/p> <p>    要将Unicode~码转换Z个字W,使用String.fromCharCode()ҎQ注意它是String对象的一?静态方?Q也是说在使用前不需要创建字W串实例Q?br />     String.fromCharCode(c1, c2, ...)<br />     它接?个或多个整数Q返回一个字W串Q该字符串包含了各参数指定的字符Q例如:<br />     var str = String.fromCharCode(72, 101, 108, 108, 111);  // str == "Hello"<br /> 讨论Q?br /> Unicode包含了这个世界上很多书写语言的字W集Q但别因为Unicode包含一个字W就期望q个字符能够在警告对话框、文本框或页面呈现时正常<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u663E_u793A";KeyGate_ads.ShowGgAds(this,"_u663E_u793A",event)' style="border-right: 0px; padding-right: 0px; border-top: 0px; padding-left: 0px; font-weight: normal; padding-bottom: 0px; margin: 0px; border-left: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-bottom: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BHbhDSVCLR_LWI5z26wPqx_B-0OfmQpSntasEwI23AZCSFBABGAEgrYXQDSgUOABQqv_nqwJgnbHegdgFqgEKMjAwMDAzNzU0MbIBD3d3dy5rbm93c2t5LmNvbcgBAdoBImh0dHA6Ly93d3cua25vd3NreS5jb20vMzQxMjMwLmh0bWyAAgGpAoO2k0STgYI-yAKI28ABqAMB6AO0A-gDIugDIOgDBQ&num=1&adurl=http://www.3ctest.cn/Company.asp%3FComID%3D1&client=ca-pub-5186439242807756");GgKwClickStat("昄","www.3ctest.cn","afc","2000037541");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u663E_u793A"'>昄</strong></nobr>。如果字W集不可用,在页面将昄为问h其它W号。一台典型的北美的计机不能在屏幕上显CZ文字W,除非中文的字W集及其字体已经安装?/p> <p>    参考:<br />     JavaScript And Dhtml Cookbook(Oreilly)      ;<br />     JavaScript-The Definitive Guide(4th Edition);<br /> ?http://www.knowsky.com/341230.html</p> </span> <img src ="http://www.tkk7.com/keweibo/aggbug/175289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2008-01-14 20:09 <a href="http://www.tkk7.com/keweibo/articles/175289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript中取得已知结点的父结?/title><link>http://www.tkk7.com/keweibo/articles/175281.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Mon, 14 Jan 2008 10:55:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/175281.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/175281.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/175281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/175281.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/175281.html</trackback:ping><description><![CDATA[<span style="color: #0000ff"><strong> <script type="text/javascript"><br />  function change(event)<br />  {<br />   var curNode ;<br />   if(event == null)<br />   {<br />    curNode = window.event.srcElement ; <br />   }<br />   else<br />   {<br />    curNode = event.target ;<br />   }<br />   var parNode = curNode.parentNode ;<br />   parNode.action = "account/updateCart.action" ;<br />   parNode.submit() ;<br />    <br />  }<br />  <br />  </script></strong></span><br /> <strong><s:iterator value="#items"><br />      <tr><br />       <td><s:property value="bookName"/></td><br />       <td><br />        <s:text name="global.format.money"><s:param value="bookPrice"/></s:text><br />       </td><br />       <td><br />        <form action="" ><br />         <input type="hidden" name="bookId" value="<s:property value="bookId"/>"><br />         <input type="text" name="quantity" size="2" value="<s:property value="quantity"/>" <span style="color: #0000ff">onchange="change();"></span><br />        </form><br />       </td><br />      </tr><br />      </s:iterator></strong> <img src ="http://www.tkk7.com/keweibo/aggbug/175281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2008-01-14 18:55 <a href="http://www.tkk7.com/keweibo/articles/175281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取表格的行数和列数http://www.tkk7.com/keweibo/articles/175017.htmlKeKeSun, 13 Jan 2008 11:41:00 GMThttp://www.tkk7.com/keweibo/articles/175017.htmlhttp://www.tkk7.com/keweibo/comments/175017.htmlhttp://www.tkk7.com/keweibo/articles/175017.html#Feedback1http://www.tkk7.com/keweibo/comments/commentRss/175017.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/175017.html <head>
<script type="text/javascript">
    function show()
 {
  var tab = document.getElementById("test") ;
      //表格行数
      var rows = tab.rows.length ;
      //表格列数
      var cells = tab.rows.item(0).cells.length ;
  alert("行数"+rows+"列数"+cells);
 }
</script>
</head>
<body>
<table id="test" border="1">
<tr>
    <td>&nbsp;</td><td>nbsp;</td>
</tr>
<tr>
    <td>&nbsp;</td><td>nbsp;</td>
</tr>
</table>
<input type="button" onclick="show();"/>
</body>
</html>

Ke 2008-01-13 19:41 发表评论
]]>
用javascript取得当前面的url路径http://www.tkk7.com/keweibo/articles/161402.htmlKeKeSun, 18 Nov 2007 06:58:00 GMThttp://www.tkk7.com/keweibo/articles/161402.htmlhttp://www.tkk7.com/keweibo/comments/161402.htmlhttp://www.tkk7.com/keweibo/articles/161402.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/161402.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/161402.html     function getURL()
  {
   var url = window.location.href;
   alert(url);
  }
 </script>

Ke 2007-11-18 14:58 发表评论
]]>
可编辑表?/title><link>http://www.tkk7.com/keweibo/articles/156276.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 26 Oct 2007 14:19:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/156276.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/156276.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/156276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/156276.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/156276.html</trackback:ping><description><![CDATA[    只有注册用户d后才能阅读该文?a href='http://www.tkk7.com/keweibo/articles/156276.html'>阅读全文</a><img src ="http://www.tkk7.com/keweibo/aggbug/156276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2007-10-26 22:19 <a href="http://www.tkk7.com/keweibo/articles/156276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>删除表格的最后一?单元?http://www.tkk7.com/keweibo/articles/156270.htmlKeKeFri, 26 Oct 2007 13:57:00 GMThttp://www.tkk7.com/keweibo/articles/156270.htmlhttp://www.tkk7.com/keweibo/comments/156270.htmlhttp://www.tkk7.com/keweibo/articles/156270.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/156270.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/156270.html阅读全文

Ke 2007-10-26 21:57 发表评论
]]>
删除节点http://www.tkk7.com/keweibo/articles/156266.htmlKeKeFri, 26 Oct 2007 13:42:00 GMThttp://www.tkk7.com/keweibo/articles/156266.htmlhttp://www.tkk7.com/keweibo/comments/156266.htmlhttp://www.tkk7.com/keweibo/articles/156266.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/156266.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/156266.html阅读全文

Ke 2007-10-26 21:42 发表评论
]]>
动态生成表?/title><link>http://www.tkk7.com/keweibo/articles/156257.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 26 Oct 2007 13:28:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/156257.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/156257.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/156257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/156257.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/156257.html</trackback:ping><description><![CDATA[    只有注册用户d后才能阅读该文?a href='http://www.tkk7.com/keweibo/articles/156257.html'>阅读全文</a><img src ="http://www.tkk7.com/keweibo/aggbug/156257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2007-10-26 21:28 <a href="http://www.tkk7.com/keweibo/articles/156257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>document.getelementbyid has no propertieshttp://www.tkk7.com/keweibo/articles/156247.htmlKeKeFri, 26 Oct 2007 13:04:00 GMThttp://www.tkk7.com/keweibo/articles/156247.htmlhttp://www.tkk7.com/keweibo/comments/156247.htmlhttp://www.tkk7.com/keweibo/articles/156247.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/156247.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/156247.html阅读全文

Ke 2007-10-26 21:04 发表评论
]]>
修改节点http://www.tkk7.com/keweibo/articles/156239.htmlKeKeFri, 26 Oct 2007 12:36:00 GMThttp://www.tkk7.com/keweibo/articles/156239.html阅读全文

Ke 2007-10-26 20:36 发表评论
]]>
常用的弹出窗口用?/title><link>http://www.tkk7.com/keweibo/articles/141972.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Sat, 01 Sep 2007 10:47:00 GMT</pubDate><guid>http://www.tkk7.com/keweibo/articles/141972.html</guid><wfw:comment>http://www.tkk7.com/keweibo/comments/141972.html</wfw:comment><comments>http://www.tkk7.com/keweibo/articles/141972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/keweibo/comments/commentRss/141972.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/keweibo/services/trackbacks/141972.html</trackback:ping><description><![CDATA[<p>1、最基本的弹出窗口代?/p> <p>以下是引用片D:<br /> <span style="color: #000000"><SCRIPT LANGUAGE="<span style="color: #000000"><a >  </span></span><br /> <!--  <br /> window.open ('page.html')  <br /> -->  <br /> </SCRIPT>  </p> <p>代码攑֜<SCRIPT LANGUAGE="javascript">标签?lt;/script>之间?<br /> <span style="color: #ff00ff"><!-- ?-->是对一些版本低的浏览器起作用?<br /> </span>window.open ('page.html') 用于控制弹出新的H口page.htmlQ如果page.html不与ȝ口在同一路径下,前面应写明\径,l对路径(http://)和相对\?../)均可。用单引号和双引号都可以Q只是不要؜用?<br /> q一D代码可以加入HTML的Q意位|,<head>?lt;/head>之间可以Q?lt;body>?lt;/body>也可以,前早执行Q尤其是面代码长,又想佉K面早点弹出就量往前放?</p> <p><br /> 2、经q设|后的弹出窗?/p> <p>定制q个弹出的窗口的外观Q尺寸大,弹出的位|以适应该页面的具体情况?</p> <p>以下是引用片D:<br /> <SCRIPT LANGUAGE="javascript">  <br /> <!--  <br /> window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no')  <br /> //写成一?nbsp; <br /> -->  <br /> </SCRIPT>  </p> <p>参数解释Q?<br /> 以下是引用片D:<br /> <SCRIPT LANGUAGE="javascript"> js脚本开始;  <br /> window.open 弹出新窗口的命oQ?span style="color: #ff00ff">  <br /> 'page.html' 弹出H口的文件名Q?nbsp; <br /> 'newwindow' 弹出H口的名字(不是文g名)Q非必须Q可用空''代替Q?nbsp; <br /> height=100 H口高度Q?nbsp; <br /> width=400 H口宽度Q?nbsp; <br /> top=0 H口距离屏幕上方的象素|  <br /> left=0 H口距离屏幕左侧的象素|  <br /> toolbar=no 是否昄工具栏,yes为显C;  <br /> menubarQscrollbars 表示菜单栏和滚动栏?nbsp; <br /> resizable=no 是否允许改变H口大小Qyes为允许;  <br /> location=no 是否昄地址栏,yes为允许;  <br /> status=no 是否昄状态栏内的信息Q通常是文件已l打开Q,yes为允许; </span> <br /> </SCRIPT> <br /> js脚本l束 </p> <p><br /> 3、用函数控制弹出H口</p> <p>完整的代码示?</p> <p>以下是引用片D:<br /> <html>  <br /> <head>  <br /> <script LANGUAGE="javascript">  <br /> <!--  <br /> function openwin() { window.open ("page.html", "newwindow", "height=100, width=400, toolbar= no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")  <br /> //写成一?nbsp; <br /> }  <br /> //-->  <br /> </script>  <br /> </head>  <br /> <body onload="openwin()">  <br /> ...L的页面内?..  <br /> </body>  <br /> </html>  </p> <p><br /> q里定义了一个函数openwin(),函数内容是打开一个窗口。在调用它之前没有Q何用途?<br /> 怎么调用呢? <br /> Ҏ一Q?lt;body onload="openwin()"> 览器读面时弹出窗口; <br /> Ҏ二:<body onunload="openwin()"> 览器离开面时弹出窗口; <br /> Ҏ三:用一个连接调用: <br /> <a href="#" onclick="openwin()">打开一个窗?lt;/a> <br /> 注意Q用的“#”是虚q接?<br /> Ҏ四:用一个按钮调用: <br /> <input type="button" onclick="openwin()" value="打开H口"> </p> <img src ="http://www.tkk7.com/keweibo/aggbug/141972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/keweibo/" target="_blank">Ke</a> 2007-09-01 18:47 <a href="http://www.tkk7.com/keweibo/articles/141972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://www66913.com" target="_blank">˾ƷƵ</a>| <a href="http://t66p.com" target="_blank">޸һ</a>| <a href="http://http99.com" target="_blank">պƷһ</a>| <a href="http://shaonvfushi.com" target="_blank">jizzѹۿ</a>| <a href="http://usagaa.com" target="_blank">޾ƷۺϾþһ</a>| <a href="http://tsxyhq.com" target="_blank">޳av߹ۿվ</a>| <a href="http://aabbcc567.com" target="_blank">jŮjڲվ </a>| <a href="http://942woool.com" target="_blank">㽶Ʒ鶹</a>| <a href="http://22222xxx.com" target="_blank">߿ƬƵ</a>| <a href="http://bbyy7.com" target="_blank">Ѹ</a>| <a href="http://xjdz8.com" target="_blank">޳avƬ</a>| <a href="http://gwcyy.com" target="_blank">˸һþ</a>| <a href="http://www77753.com" target="_blank">Ļav޿</a>| <a href="http://91ggan.com" target="_blank">˳ŷ</a>| <a href="http://wwwdd312.com" target="_blank">쿴ѸӰ</a>| <a href="http://15831883389.com" target="_blank">av뾫Ʒ4 </a>| <a href="http://www-175345.com" target="_blank">ɪɪվվ</a>| <a href="http://www77753.com" target="_blank">۲ݳѹۿ</a>| <a href="http://baocaoluoli.com" target="_blank">պaƵ</a>| <a href="http://gtja1668.com" target="_blank">ɫɫwww</a>| <a href="http://zz1965.com" target="_blank">޻Ƭֻѹۿ</a>| <a href="http://740740740.com" target="_blank">ղһ</a>| <a href="http://by6635.com" target="_blank">ĻƷ</a>| <a href="http://huahui1866.com" target="_blank">պëƬ߹ۿ</a>| <a href="http://www-095666.com" target="_blank">޾ƷƬ</a>| <a href="http://caicpa.com" target="_blank">vƬ߹ۿƷ</a>| <a href="http://628669.com" target="_blank">һɫþ88޾Ʒۺ </a>| <a href="http://beijinzhongliuyiyuan.com" target="_blank">վѹۿ</a>| <a href="http://yzddcpj.com" target="_blank">ɫַȫ</a>| <a href="http://qingdaostf.com" target="_blank">޾ƷĻþò</a>| <a href="http://ahbbht.com" target="_blank">պavþþƷ</a>| <a href="http://cswangli.com" target="_blank">޵һ㽶Ƶ</a>| <a href="http://hbtelong.com" target="_blank">ˊ]Ƭѹۿ</a>| <a href="http://maomi02.com" target="_blank">˳վ߹ۿ </a>| <a href="http://whlnrsqsie.com" target="_blank">VV</a>| <a href="http://5g6z.com" target="_blank">AVһþ</a>| <a href="http://tmg-beelen.com" target="_blank">޹˾þþƷţӰ</a>| <a href="http://bjhuicui.com" target="_blank">պƬӰѹۿ</a>| <a href="http://0939666.com" target="_blank">AVרߵӰ</a>| <a href="http://lswqn.com" target="_blank">ŷղþ99</a>| <a href="http://8mav1000.com" target="_blank">Ļȫ8</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>