Yycom項目經驗總結(ASP與JAVASCRIPT)

  
        Yycom項目是一個表單輸入、存儲的系統,使用ASP+ORACLE構建。特點是前臺表單很多,需要寫很多數據庫存儲的語句,需要大量使用JAVASCRIPT進行前臺的編程。
JAVASCRIPT經驗
JAVASCRIPT是一種非強類型的語言,變量定義時可以只是用 var i; 的形式來定義。
在javascript中可以用轉義字符/"來在字符串中代表",而在vbscript中則使用""(兩個雙引號)來在字符串中代表"。
關於數組的使用
如果要在不同的頁面間傳遞數組,可以將數組用分隔符連接成字符串,傳遞到相就頁面之後再分解開來。
下面的例子演示了數組的插入、刪除、合併、分解
<script language="javascript">
    
var arrobj = new Array();
    
var i;
    
var comstr;
    
    
//把數組看做棧,向數組中壓入數據,在後面被壓入的數據在數組中的索引值大
    for( i = 0 ; i < 10 ; i++ ){
        arrobj.push(i);
    }

    
    
//arrobj.length是數組的長度,在這裏值爲10
    for( i = 0 ; i < arrobj.length; i++ ){
        document.write(arrobj[i]);
    }

    document.write(
"<br>");
    
    
//arrobj.splice(5,3);刪除數組中從索引5(第六個元素)開始的3個元素,其他用法請參考手冊
    //這樣刪除的話,arrobj.length的值會減3
    arrobj.splice(5,3);

    
for( i = 0 ; i < arrobj.length; i++ ){
        document.write(arrobj[i]);
    }

    document.write(
"<br>");

    
//arrobj.join("|");以“|”連接各個元素,函數返回連接好的字符串,數組應該不變
    document.write(comstr = arrobj.join("|") );
    document.write(
"<br>");
    
    
//comstr.split("|");將字符串分離成數組,返回字符串數組    
    arrobj = comstr.split("|");

    
for( i = 0 ; i < arrobj.length; i++ ){
        document.write(arrobj[i]);
    }

    document.write(
"<br>");
</script>
數組的賦值類似C的指針:
var x = [1098];
var y = x;
x[
0= 2;
alert(
"The value of y's first element is: " + y[0]);
關於數組的一篇好文章:http://blog.iyi.cn/start/2006/12/javascript_3.html
對select控件的使用
下面這個例子展示了增加OPTION、刪除所有OPTION、顯示當前選定的OPTION的文本、選中第一個OPTION的功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script language="javascript">
    
//向select控件中增加option
    var i=0;
    
function myadd(oArea)
    
{
        
var oOption = document.createElement('OPTION');
        oOption.text 
= i;
        oOption.value 
= i++;
        oArea.options.add(oOption);
    }

    
    
//remove all options in the select box
    function RemoveAllOptions(selectObj)
    
{
        
var i; 
        
for( i = selectObj.length-1 ; i >= 0 ; i--){
            selectObj.remove( i );
        }

    }

    
    
//顯示當前選中的OPTION的文本
    function ShowOptionText(selObj)
    
{        
        alert(selObj.options[selObj.selectedIndex].text);
    }

    
    
    
function SelectFirst(selObj)
    
{
        selObj.options[
0].selected = true;
    }
    
</script>
</head>

<body>
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="">
  
<label>
  
<select name="area">
  
</select>
  
</label>
  
<input type="button" name="Submit" value="增加OPTION" onclick="myadd(this.form.area)" />
  
<input type="button" name="Submit2" value="刪除所有OPTION" onclick="RemoveAllOptions(this.form.area)" />
  
<input type="button" name="Submit22" value="顯示當前選定的OPTION的文本" onclick="ShowOptionText(this.form.area)" />
  
<label>
  
<input type="button" name="Submit3" value="選中第一個OPTION" onclick="SelectFirst(this.form.area)" />
  
</label>
</form>
</body>
</html>
 
innerHTML的使用
通過innerHTML,可以動態的改變html代碼,改動後的HTML代碼,與平常直接編寫的HTML代碼有同樣的效用,比如說使用innerHTML增加了一個TEXT控件,同樣可以用各種方式通過NAME得到這個控件的值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>innerHTML outerHTML</title>
<script language="javascript">
function ChangeDiv(divName)
{
    document.getElementById(divName).innerHTML 
+= "1234";
}

</script>
</head>

<body>
<div id="mydiv"></div>
<label>
<input type="button" name="Submit" value="ChnageDiv" onclick="ChangeDiv('mydiv')" />
</label>
</body>
</html>
區別innerHTML outerHTML innerText outerText
<div id="div"><input name="button" value="Button" type="button"><font color="green"><h2>This is a DIV!</h2></font></div>
<input name="innerHTML" value="innerHTML" type="button" OnClick="alert(div.innerHTML);">
<input name="outerHTML" value="outerHTML" type="button" OnClick="alert(div.outerHTML);">
<input name="innerText" value="innerText" type="button" OnClick="alert(div.innerText);">
<input name="outerText" value="outerText" type="button" OnClick="alert(div.outerText);">
當div標籤用在<table>與<tr>之間這樣的非常規位置時,使用innerHTML等時不能得到正確的值,這時可以不使用DIV標籤,改把ID值放在TR等標籤中,再使用.
字符串與正則表達式的使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Test String</title>
</head>

<body>
<script language="javascript">

function execDemo(){
   
var s;
   
var re = new RegExp("d(b+)(d)","ig");
   
var str = "cdbBdbsbdbdz";
   document.write(str
+"<br>");
   document.write(
"正則表達式"+ "d(b+)(d)" + "<br>");
   
var arr = re.exec(str);
   s 
= "$1 contains: " + RegExp.$1 + " ";
   s 
+= "$2 contains: " + RegExp.$2 + " ";
   s 
+= "$3 contains: " + RegExp.$3;
   
return(s);
}
function RegExpTest(){
  
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  
if (ver >= 5.5){                 // 測試 JScript 的版本。
    var src = "The rain in Spain falls mainly in the plain.";
    document.write(src 
+ "<br>");
    
var re = /w+/g;               // 創建正則表達式模式。
    document.write("/w+/g"+ "<br>");
    
var arr;
    
while ((arr = re.exec(src)) != null)
       document.write(arr.index 
+ "-" + arr.lastIndex + " " + arr + "<br>");
  }
  
else{
    alert(
"請使用 JScript 的更新版本");
  }
}
function MatchDemo(){
   
var r, re;         // 聲明變量。
   var s = "The rain in Spain falls mainly in the plain";
   document.write(s 
+ "<br>");
   
//re = /ain/i;    // 創建正則表達式模式。
   re = /ain/ig;    // 創建正則表達式模式。
   r = s.match(re);   // 嘗試匹配搜索字符串。
   return(r);         // 返回第一次出現 "ain" 的地方。
}
function MatchDemo2(){
   
var r, re;         // 聲明變量。
   var s = "The rain in Spain falls mainly in the plain";
   document.write(s 
+ "<br>");
   re 
= /ain/i;    // 創建正則表達式模式。
   //re = /ain/ig;    // 創建正則表達式模式。
   r = s.match(re);   // 嘗試匹配搜索字符串。
   return(r);         // 返回第一次出現 "ain" 的地方。
}

function execDemo2()
{
   
var s;                                //Declare variable.
   var re = new RegExp("d(b+)(d)","ig"); //Regular expression pattern.
   var str = "cdbBdbsbdbdz";
   document.write(str 
+ "<br>");   
   document.write(
"正則表達式:" + "d(b+)(d)" + "<br>");          //String to be searched.
   var arr = re.exec(str);               //Perform the search.
   s = "$1 returns: " + RegExp.$1 + "<br>";
   s 
+= "$2 returns: " + RegExp.$2 + "<br>";
   s 
+= "$3 returns: " + RegExp.$3 + "<br>";
   s 
+= "input returns : " + RegExp.input + "<br>";
   s 
+= "lastMatch returns: " + RegExp.lastMatch + "<br>";
   s 
+= "leftContext returns: " + RegExp.leftContext + "<br>";
   s 
+= "rightContext returns: " + RegExp.rightContext + "<br>"
   s 
+= "lastParen returns: " + RegExp.lastParen + "<br>";
   
return(s);                            //Return results.
}


//////////////////////////////////////////////////////////
    var str = "abcdefghijklmnopqrstuvwxyz";
    document.write(
"<h1>" + str + "</h1>");
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"d在str中的位置 "+ str.indexOf( "d" ) ); //d在str中的位置
    document.write("<br />==========================================================================<br />");
    document.write( 
"從右邊往左找,第一個x的位置 " + str.lastIndexOf( "x" ) ); //從右邊往左找,第一個x的位置
    document.write("<br />==========================================================================<br />");
    document.write( 
"第三個字符 " + str.charAt( 2 ) );   //第三個字符
    document.write("<br />==========================================================================<br />");
    document.write( 
"得到第5到9個字符串 " + str.substring(5,9));
    
    
//正則表達式
    var myreg = /hij/;
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"把正則表達式/hij/替換成8 " + str.replace(myreg,"8") );
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"正則表達式的match(i) " + MatchDemo() );
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"正則表達式的match(ig) " + MatchDemo() );
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"執行正則表達式 " + execDemo2())
    document.write(
"<br />==========================================================================<br />");
document.write( 
"正則表達式的查找 $1...$9 屬性 " + execDemo() );
    document.write(
"<br />==========================================================================<br />");

    
//正則表達式的用法
    RegExpTest();
    re 
= /rst/;
    document.write(
"<br />==========================================================================<br />");
    document.write( 
"測試str中是否有匹配/rst/的字符串 " + re.test(str) );
    document.write(
"<br />==========================================================================<br />");
document.write(
"轉換爲大寫 " + str.toUpperCase());
    document.write(
"<br />==========================================================================<br />");
document.write(
"轉換爲小寫 " + str.toLowerCase());
    document.write(
"<br />==========================================================================<br />");
document.write(
"轉換爲字符串 "+ str.toString());
    document.write(
"<br />==========================================================================<br />");
document.write(
"轉換爲整數 " + (parseInt("23")+parseInt("3")) );
    
var escapeStr;
    escapeStr 
= escape("我的名字叫馬牛我的Email是:manioster[at]gmail.com");
    document.write(
"<br />==========================================================================<br />");
document.write(
"escape 方法返回一個包含了 charstring 內容的字符串值( Unicode 格式)。所有空格、標點、重音符號以及其他非 ASCII 字符都用 %xx 編碼代替,其中 xx 等於表示該字符的十六進制數。"+ escapeStr);
    document.write(
"<br />==========================================================================<br />");
document.write(
"unescape: 解碼用 escape 方法進行了編碼的 String 對象" + unescape(escapeStr));
    
    
//測試正則表達式的$ 屬性
</script>

</body>
</html>

項目中的其他功能:

打開,關閉框架中的左欄
上傳前預覽圖片

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章