亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

javascript常用功能匯總

2024-05-06 16:22:44
字體:
來源:轉載
供稿:網友

本文給大家總結了12個javascript常用的基本功能,十分的實用,這里推薦給大家,需要的朋友可以參考下

1.javascript的數組API:

 

 
  1. //定義數組  
  2. var pageIds = new Array();  
  3. pageIds.push('A');  
  4. 數組長度  
  5. pageIds.length;  
  6. //shift:刪除原數組第一項,并返回刪除元素的值;如果數組為空則返回undefined  
  7. var a = [1,2,3,4,5];  
  8. var b = a.shift(); //a:[2,3,4,5] b:1  
  9. //unshift:將參數添加到原數組開頭,并返回數組的長度  
  10. var a = [1,2,3,4,5];  
  11. var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7  
  12. //注:在IE6.0下測試返回值總為undefined,FF2.0下測試返回值為7,所以這個方法的返回值不可靠,需要用返回值時可用splice代替本方法來使用。  
  13. //pop:刪除原數組最后一項,并返回刪除元素的值;如果數組為空則返回undefined  
  14. var a = [1,2,3,4,5];  
  15. var b = a.pop(); //a:[1,2,3,4] b:5  
  16. //push:將參數添加到原數組末尾,并返回數組的長度  
  17. var a = [1,2,3,4,5];  
  18. var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7  
  19. //concat:返回一個新數組,是將參數添加到原數組中構成的  
  20. var a = [1,2,3,4,5];  
  21. var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]  
  22. //splice(start,deleteCount,val1,val2,):從start位置開始刪除deleteCount項,并從該位置起插入val1,val2,  
  23. var a = [1,2,3,4,5];  
  24. var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]  
  25. var b = a.splice(0,1); //同shift  
  26. a.splice(0,0,-2,-1); var b = a.length; //同unshift  
  27. var b = a.splice(a.length-1,1); //同pop  
  28. a.splice(a.length,0,6,7); var b = a.length; //同push  
  29. //reverse:將數組反序  
  30. var a = [1,2,3,4,5];  
  31. var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]  
  32. //sort(orderfunction):按指定的參數對數組進行排序  
  33. var a = [1,2,3,4,5];  
  34. var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]  
  35. //slice(start,end):返回從原數組中指定開始下標到結束下標之間的項組成的新數組  
  36. var a = [1,2,3,4,5];  
  37. var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]  
  38. //join(separator):將數組的元素組起一個字符串,以separator為分隔符,省略的話則用默認用逗號為分隔符  
  39. var a = [1,2,3,4,5];  
  40. var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"  

2.dom最常用API:

 

 
  1. //document方法:  
  2. getElementById(id) Node 返回指定結點的引用  
  3. getElementsByTagName(name) NodeList 返回文檔中所有匹配的元素的集合  
  4. createElement(name) Node Node  
  5. createTextNode(text) Node 創建一個純文本結點  
  6. ownerDocument Document 指向這個節點所屬的文檔  
  7. documentElement Node 返回html節點  
  8. document.body Node 返回body節點  
  9. //element方法:  
  10. getAttribute(attributeName) String 返回指定屬性的值  
  11. setAttribute(attributeName,value) String 給屬性賦值  
  12. removeAttribute(attributeName) String 移除指定屬性和它的值  
  13. getElementsByTagName(name) NodeList 返回結點內所有匹配的元素的集合  
  14. //node方法:  
  15. appendChild(child) Node 給指定結點添加一個新的子結點  
  16. removeChild(child) Node 移除指定結點的子結點  
  17. replaceChild(newChild,oldChild) Node 替換指定結點的子結點  
  18. insertBefore(newChild,refChild) Node 在同一層級的結點前面插入新結點  
  19. hasChildNodes() Boolean 如果結點有子結點則返回true 
  20. //node屬性:  
  21. nodeName String 以字符串的格式存放結點的名稱  
  22. nodeType String 以整型數據格式存放結點的類型  
  23. nodeValue String 以可用的格式存放結點的值  
  24. parentNode Node 指向結點的父結點的引用  
  25. childNodes NodeList 指向子結點的引用的集合  
  26. firstChild Node 指向子結點結合中的第一個子結點的引用  
  27. lastChild Node 指向子結點結合中的最后一個子結點的引用  
  28. previousSibling Node 指向前一個兄弟節點;如果這個節點就是兄弟節點,那么該值為null 
  29. nextSibling Node 指向后一個兄弟節點;如果這個節點就是兄弟節點,那么該值為null 

3.網上搜藏的一個map對象:

 

 
  1. function HashMap()  
  2. {  
  3. /** Map 大小 **/ 
  4. var size = 0;  
  5. /** 對象 **/ 
  6. var entry = new Object();  
  7. /** 存 **/ 
  8. this.put = function (key , value)  
  9. {  
  10. if(!this.containsKey(key))  
  11. {  
  12. size ++ ;  
  13. }  
  14. entry[key] = value;  
  15. }  
  16. /** 取 **/ 
  17. this.get = function (key)  
  18. {  
  19. return this.containsKey(key) ? entry[key] : null;  
  20. }  
  21. /** 刪除 **/ 
  22. this.remove = function ( key )  
  23. {  
  24. ifthis.containsKey(key) && ( delete entry[key] ) )  
  25. {  
  26. size --;  
  27. }  
  28. }  
  29. /** 是否包含 Key **/ 
  30. this.containsKey = function ( key )  
  31. {  
  32. return (key in entry);  
  33. }  
  34. /** 是否包含 Value **/ 
  35. this.containsValue = function ( value )  
  36. {  
  37. for(var prop in entry)  
  38. {  
  39. if(entry[prop] == value)  
  40. {  
  41. return true;  
  42. }  
  43. }  
  44. return false;  
  45. }  
  46. /** 所有 Value **/ 
  47. this.values = function ()  
  48. {  
  49. var values = new Array();  
  50. for(var prop in entry)  
  51. {  
  52. values.push(entry[prop]);  
  53. }  
  54. return values;  
  55. }  
  56. /** 所有 Key **/ 
  57. this.keys = function ()  
  58. {  
  59. var keys = new Array();  
  60. for(var prop in entry)  
  61. {  
  62. keys.push(prop);  
  63. }  
  64. return keys;  
  65.  
  66. }  
  67. /** Map Size **/ 
  68. this.size = function ()  
  69. {  
  70. return size;  
  71. }  
  72. /* 清空 */ 
  73. this.clear = function ()  
  74. {  
  75. size = 0;  
  76. entry = new Object();  
  77. }  
  78. }  
  79. var map = new HashMap();  
  80. /*  
  81. map.put("A","1");  
  82. map.put("B","2");  
  83. map.put("A","5");  
  84. map.put("C","3");  
  85. map.put("A","4");  
  86. */ 
  87. /*  
  88. alert(map.containsKey("XX"));  
  89. alert(map.size());  
  90. alert(map.get("A"));  
  91. alert(map.get("XX"));  
  92. map.remove("A");  
  93. alert(map.size());  
  94. alert(map.get("A"));  
  95. */ 
  96. /** 同時也可以把對象作為 Key **/ 
  97. /*  
  98. var arrayKey = new Array("1","2","3","4");  
  99. var arrayValue = new Array("A","B","C","D");  
  100. map.put(arrayKey,arrayValue);  
  101. var value = map.get(arrayKey);  
  102. for(var i = 0 ; i < value.length ; i++)  
  103.  
  104. //alert(value[i]);  
  105.  
  106. */ 
  107. /** 把對象做為Key時 ,自動調用了該對象的 toString() 方法 其實最終還是以String對象為Key**/ 
  108. /** 如果是自定義對象 那自己得重寫 toString() 方法 否則 . 就是下面的結果 **/ 
  109. function MyObject(name)  
  110. {  
  111. this.name = name;  
  112. }  
  113. /**  
  114. function MyObject(name)  
  115.  
  116. this.name = name;  
  117. this.toString = function ()  
  118.  
  119. return this.name;  
  120.  
  121.  
  122. **/ 
  123. var object1 = new MyObject("小張");  
  124. var object2 = new MyObject("小名");  
  125. map.put(object1,"小張");  
  126. map.put(object2,"小名");  
  127. alert(map.get(object1));  
  128. alert(map.get(object2));  
  129. map.remove("xxxxx");  
  130. alert(map.size());  
  131. /** 運行結果 小名 小名 size = 1 **/ 
  132. /** 如果改成復寫toString()方法的對象 , 效果就完全不一樣了 **/ 

4.常用的數字函數

 

 
  1. //·數字型(Number)  
  2. //1.聲明  
  3. var i = 1;  
  4. var i = new Number(1);  
  5. //2.字符串與數字間的轉換  
  6. var i = 1;  
  7. var str = i.toString(); //結果: "1"  
  8. var str = new String(i); //結果: "1"  
  9. i = parseInt(str); //結果: 1  
  10. i = parseFloat(str); //結果: 1.0  
  11. //注意: parseInt,parseFloat會把一個類似于"32G"的字符串,強制轉換成32  
  12. //3.判斷是否為有效的數字  
  13. var i = 123; var str = "string";  
  14. iftypeof i == "number" ){ } //true  
  15. //某些方法(如:parseInt,parseFloat)會返回一個特殊的值NaN(Not a Number)  
  16. //請注意第2點中的[注意],此方法不完全適合判斷一個字符串是否是數字型!!  
  17. i = parseInt(str);  
  18. if( isNaN(i) ){ }  
  19. //4.數字型比較  
  20. //此知識與[字符串比較]相同  
  21. ///5.小數轉整數  
  22. var f = 1.5;  
  23. var i = Math.round(f); //結果:2 (四舍五入)  
  24. var i = Math.ceil(f); //結果:2 (返回大于f的最小整數)  
  25. var i = Math.floor(f); //結果:1 (返回小于f的最大整數)  
  26. //6.格式化顯示數字  
  27. var i = 3.14159;  
  28. //格式化為兩位小數的浮點數  
  29. var str = i.toFixed(2); //結果: "3.14"  
  30. //格式化為五位數字的浮點數(從左到右五位數字,不夠補零)  
  31. var str = i.toPrecision(5); //結果: "3.1415"  
  32. //7.X進制數字的轉換  
  33. //不是很懂 -.-  
  34. var i = parseInt("0x1f",16);  
  35. var i = parseInt(i,10);  
  36. var i = parseInt("11010011",2);  
  37. //8.隨機數  
  38. //返回0-1之間的任意小數  
  39. var rnd = Math.random();  
  40. //返回0-n之間的任意整數(不包括n)  
  41. var rnd = Math.floor(Math.random() * n)  

5.網上搜藏的js堆棧:

 

 
  1. function stack(){  
  2. if(this.top==undefined){  
  3. //初始化堆棧的頂部指針和數據存放域  
  4. this.top=0;  
  5. this.unit=new Array();  
  6. }  
  7. this.push=function(pushvalue){  
  8. //定義壓入堆棧的方法  
  9. this.unit[this.top]=pushvalue;  
  10. this.top+=1;  
  11. }  
  12. this.readAllElements=function(){  
  13. //定義讀取所有數據的方法  
  14. if(this.top==0){  
  15. alert("當前??眨瑹o法讀取數據");  
  16. return("");  
  17. }  
  18. var count=0;  
  19. var outStr="";  
  20. for(count=0;count<this.top;count++){  
  21. outStr+=this.unit[count]+",";  
  22. }  
  23. return(outStr);  
  24. }  
  25. this.pop=function(){  
  26. //定義彈出堆棧的方法  
  27. if(this.top==0){  
  28. alert("當前???,無法彈出數據");  
  29. return("");  
  30. }  
  31. var popTo=this.unit[this.top-1];  
  32. this.top--;  
  33. return(popTo);  
  34. /* 從堆棧彈出數據,頂部指針減一,不過這里沒有做到資源的釋放,也  
  35. 就是說數據仍然存在于this.unit的數組中,只不過無法訪問罷了。目前  
  36. 我也沒想到好的辦法解決。*/ 
  37. }  
  38. }  

6.最常用的JavaScript日期函數:

 

 
  1. //·日期型(Date)  
  2. //1.聲明  
  3. var myDate = new Date(); //系統當前時間  
  4. var myDate = new Date(yyyy, mm, dd, hh, mm, ss);  
  5. var myDate = new Date(yyyy, mm, dd);  
  6. var myDate = new Date("monthName dd, yyyy hh:mm:ss");  
  7. var myDate = new Date("monthName dd, yyyy");  
  8. var myDate = new Date(epochMilliseconds);  
  9. //2.獲取時間的某部份  
  10. var myDate = new Date();  
  11. myDate.getYear(); //獲取當前年份(2位)  
  12. myDate.getFullYear(); //獲取完整的年份(4位,1970-????)  
  13. myDate.getMonth(); //獲取當前月份(0-11,0代表1月)  
  14. myDate.getDate(); //獲取當前日(1-31)  
  15. myDate.getDay(); //獲取當前星期X(0-6,0代表星期天)  
  16. myDate.getTime(); //獲取當前時間(從1970.1.1開始的毫秒數) 時間戳?。?nbsp; 
  17. myDate.getHours(); //獲取當前小時數(0-23)  
  18. myDate.getMinutes(); //獲取當前分鐘數(0-59)  
  19. myDate.getSeconds(); //獲取當前秒數(0-59)  
  20. myDate.getMilliseconds(); //獲取當前毫秒數(0-999)  
  21. myDate.toLocaleDateString(); //獲取當前日期  
  22. myDate.toLocaleTimeString(); //獲取當前時間  
  23. myDate.toLocaleString( ); //獲取日期與時間  
  24. //3.計算之前或未來的時間  
  25. var myDate = new Date();  
  26. myDate.setDate(myDate.getDate() + 10); //當前時間加10天  
  27. //類似的方法都基本相同,以set開頭,具體參考第2點  
  28. //4.計算兩個日期的偏移量  
  29. var i = daysBetween(beginDate,endDate); //返回天數  
  30. var i = beginDate.getTimezoneOffset(endDate); //返回分鐘數  
  31. //5.檢查有效日期  
  32. //checkDate() 只允許"mm-dd-yyyy"或"mm/dd/yyyy"兩種格式的日期  
  33. if( checkDate("2006-01-01") ){ }  
  34. //正則表達式(自己寫的檢查 yyyy-mm-dd, yy-mm-dd, yyyy/mm/dd, yy/mm/dd 四種)  
  35. var r = /^(/d{2}|/d{4})[//-]/d{1,2}[//-]/d{1,2}$/;  
  36. if( r.test( myString ) ){ }  

7.最常用字符串函數API:

 

 
  1. //·字符串(String)  
  2. //1.聲明  
  3. var myString = new String("Every good boy does fine.");  
  4. var myString = "Every good boy does fine.";  
  5. //2.字符串連接  
  6. var myString = "Every " + "good boy " + "does fine.";  
  7. var myString = "Every "; myString += "good boy does fine.";  
  8. //3.截取字符串  
  9. //截取第 6 位開始的字符  
  10. var myString = "Every good boy does fine.";  
  11. var section = myString.substring(6); //結果: "good boy does fine."  
  12. //截取第 0 位開始至第 10 位為止的字符  
  13. var myString = "Every good boy does fine.";  
  14. var section = myString.substring(0,10); //結果: "Every good"  
  15. //截取從第 11 位到倒數第 6 位為止的字符  
  16. var myString = "Every good boy does fine.";  
  17. var section = myString.slice(11,-6); //結果: "boy does"  
  18. //從第 6 位開始截取長度為 4 的字符  
  19. var myString = "Every good boy does fine.";  
  20. var section = myString.substr(6,4); //結果: "good"  
  21. //4.轉換大小寫  
  22. var myString = "Hello";  
  23. var lcString = myString.toLowerCase(); //結果: "hello"  
  24. var ucString = myString.toUpperCase(); //結果: "HELLO"  
  25. //5.字符串比較  
  26. var aString = "Hello!";  
  27. var bString = new String("Hello!");  
  28. if( aString == "Hello!" ){ } //結果: true  
  29. if( aString == bString ){ } //結果: true  
  30. if( aString === bString ){ } //結果: false (兩個對象不同,盡管它們的值相同)  
  31. //6.檢索字符串  
  32. var myString = "hello everybody.";  
  33. // 如果檢索不到會返回-1,檢索到的話返回在該串中的起始位置  
  34. if( myString.indexOf("every") > -1 ){ } //結果: true  
  35. ////7.查找替換字符串  
  36. var myString = "I is your father.";  
  37. var result = myString.replace("is","am"); //結果: "I am your father."  
  38. //8.特殊字符:  
  39. ///b : 后退符 /t : 水平制表符  
  40. ///n : 換行符 /v : 垂直制表符  
  41. ///f : 分頁符 /r : 回車符  
  42. ///" : 雙引號 /' : 單引號  
  43. //// : 反斜桿  
  44. //9.將字符轉換成Unicode編碼  
  45. var myString = "hello";  
  46. var code = myString.charCodeAt(3); //返回"l"的Unicode編碼(整型)  
  47. var char = String.fromCharCode(66); //返回Unicode為66的字符  
  48. //10.將字符串轉換成URL編碼  
  49. var myString = "hello all";  
  50. var code = encodeURI(myString); //結果: "hello%20all"  
  51. var str = decodeURI(code); //結果: "hello all"  
  52. //相應的還有: encodeURIComponent() decodeURIComponent()  

8.數學函數:

 

 
  1. ·Math對象  
  2. 1. Math.abs(num) : 返回num的絕對值  
  3. 2. Math.acos(num) : 返回num的反余弦值  
  4. 3. Math.asin(num) : 返回num的反正弦值  
  5. 4. Math.atan(num) : 返回num的反正切值  
  6. 5. Math.atan2(y,x) : 返回y除以x的商的反正切值  
  7. 6. Math.ceil(num) : 返回大于num的最小整數  
  8. 7. Math.cos(num) : 返回num的余弦值  
  9. 8. Math.exp(x) : 返回以自然數為底,x次冪的數  
  10. 9. Math.floor(num) : 返回小于num的最大整數  
  11. 10.Math.log(num) : 返回num的自然對數  
  12. 11.Math.max(num1,num2) : 返回num1和num2中較大的一個  
  13. 12.Math.min(num1,num2) : 返回num1和num2中較小的一個  
  14. 13.Math.pow(x,y) : 返回x的y次方的值  
  15. 14.Math.random() : 返回0到1之間的一個隨機數  
  16. 15.Math.round(num) : 返回num四舍五入后的值  
  17. 16.Math.sin(num) : 返回num的正弦值  
  18. 17.Math.sqrt(num) : 返回num的平方根  
  19. 18.Math.tan(num) : 返回num的正切值  
  20. 19.Math.E : 自然數(2.718281828459045)  
  21. 20.Math.LN2 : 2的自然對數(0.6931471805599453)  
  22. 21.Math.LN10 : 10的自然對數(2.302585092994046)  
  23. 22.Math.LOG2E : log 2 為底的自然數(1.4426950408889634)  
  24. 23.Math.LOG10E : log 10 為底的自然數(0.4342944819032518)  
  25. 24.Math.PI : π(3.141592653589793)  
  26. 25.Math.SQRT1_2 : 1/2的平方根(0.7071067811865476)  
  27. 26.Math.SQRT2 : 2的平方根(1.4142135623730951)  

9.瀏覽器特征函數:

 

 
  1. //1.瀏覽器名稱  
  2. //IE : "Microsoft Internet Explorer"  
  3. //NS : "Netscape"  
  4. var browserName = navigator.appName;  
  5. //2.瀏覽器版本  
  6. var browserVersion = navigator.appVersion;  
  7. //3.客戶端操作系統  
  8. var isWin = ( navigator.userAgent.indexOf("Win") != -1 );  
  9. var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );  
  10. var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );  
  11. //4.判斷是否支持某對象,方法,屬性  
  12. //當一個對象,方法,屬性未定義時會返回undefined或null等,這些特殊值都是false  
  13. if( document.images ){ }  
  14. if( document.getElementById ){ }  
  15. //5.檢查瀏覽器當前語言  
  16. if( navigator.userLanguage ){ var l = navigator.userLanguage.toUpperCase(); }  
  17. //6.檢查瀏覽器是否支持Cookies  
  18. if( navigator.cookieEnabled ){ }  

10.JavaScript面向對象的方法實現繼承:call方法

 

 
  1. // 動物類 animal  
  2. function animal(bSex){  
  3. this.sex = bSex  
  4. this.getSex = function(){  
  5. return this.sex  
  6. }  
  7. }  
  8. // 類靜態變量 (如果你不修改它的話~~)  
  9. animal.SEX_G = new Object(); // 雌性  
  10. animal.SEX_B = new Object(); // 雄性  
  11. // 動物子類 鳥  
  12. function bird(bSex){  
  13. animal.call(this, bSex);  
  14. this.fly = function(iSpeed){  
  15. alert("飛行時速高達 " + iSpeed);  
  16. }  
  17. }  
  18. // 動物子類 魚  
  19. function fish(bSex){  
  20. animal.call(this, bSex);  
  21. this.swim = function(iSpeed){  
  22. alert("游動時速高達 " + iSpeed)  
  23. }  
  24. }  
  25. // 魚 鳥 雜交品種。。。  
  26. function crossBF(bSex){  
  27. bird.call(this, bSex);  
  28. fish.call(this, bSex);  
  29. }  
  30. var oPet = new crossBF(animal.SEX_G); // 雌性 魚鳥  
  31. alert(oPet.getSex() == animal.SEX_G ? "雌性" : "雄性");  
  32. oPet.fly(124)  
  33. oPet.swim(254)  

11.用面向對象的編程方式寫JavaScript:

 

 
  1. MyTool = new function(){  
  2. /**  
  3. * 返回非空字符串,如果有默認值就返回默認字符串.  
  4. */ 
  5. this.notNull = function(str,defaultStr){  
  6. if(typeof(str)=="undefined"||str==null||str==''){  
  7. if(defaultStr)  
  8. return defaultStr;  
  9. else 
  10. return '';  
  11. }  
  12. else{  
  13. return str;  
  14. }  
  15. }  
  16. }  
  17. rootId = MyTool.notNull(rootId,'001000');  

12.常用的js方法,

包括表單校驗的一些方法,下拉菜單常用的方法等等:

 

 
  1. /**  
  2. * 對JSON對象轉換為字符串.  
  3. * @param {json對象} json  
  4. * @return {json字符串}  
  5. */ 
  6. function jsonObj2Str(json) {  
  7. var str = "{";  
  8. for (prop in json) {  
  9. str += prop + ":" + json[prop] + ",";  
  10. }  
  11. str = str.substr(0, str.length - 1);  
  12. str += "}";  
  13. return str;  
  14. }  
  15. /**  
  16. * 將json字符串轉換為json對象.  
  17. * @param {json字符串} jsonstr  
  18. * @return {json對象}  
  19. */ 
  20. function jsonStr2Obj(jsonstr) {  
  21. return eval("("+jsonstr+")");  
  22. }  
  23. /**  
  24. * 得到一個元素的left坐標值.  
  25. * @param {dom對象} obj  
  26. * @return {位置值}  
  27. */ 
  28. function getLeft(obj){  
  29. var offset=e.offsetLeft;  
  30. if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);  
  31. return offset;  
  32. }  
  33. /**  
  34. * 得到一個元素的絕對位置的top坐標值.  
  35. * @param {dom對象} obj  
  36. * @return {位置值}  
  37. */ 
  38. function getTop(obj){  
  39. var offset=e.offsetTop;  
  40. if(e.offsetParent!=null) offset+=getTop(e.offsetParent);  
  41. return offset;  
  42. }  
  43. /**  
  44. * 刪除一個字符串的左右空格.  
  45. * @param {原始字符串} str  
  46. * @return {刪除空格之后的字符串}  
  47. */ 
  48. function trim(str)  
  49. {  
  50. return str.replace(/(^/s*)|(/s*$)/g,"");  
  51. }  
  52. /**  
  53. * 根據id取出一個元素.  
  54. * @param {元素id值} str  
  55. * @return {dom對象}  
  56. */ 
  57. function $(str) {  
  58. return document.getElementById(str);  
  59. }  
  60. /**  
  61. * 按name獲取一個對象.  
  62. * @param {元素name值} str  
  63. * @return {根據name返回的第一個對象}  
  64. */ 
  65. function $byName(str) {  
  66. var arr = document.getElementsByName(str);  
  67. if (arr)  
  68. return arr[0];  
  69. else 
  70. return null;  
  71. }  
  72. /***************以下方法和表單驗證相關*************************************************/ 
  73. /**  
  74. * 返回非空字符串,如果有默認值就返回默認字符串.  
  75. * @param {要進行轉換的原字符串} str  
  76. * @param {默認值} defaultStr  
  77. * @return {返回結果}  
  78. */ 
  79. function notNull(str, defaultStr) {  
  80. if (typeof(str) == "undefined" || str == null || str == '') {  
  81. if (defaultStr)  
  82. return defaultStr;  
  83. else 
  84. return '';  
  85. else {  
  86. return str;  
  87. }  
  88. }  
  89. /**  
  90. * 比較兩個日期大小.  
  91. * @param {較小日期的文本框id} smallDate  
  92. * @param {較大日期的文本框id} bigDate  
  93. * @param {出錯的提示信息} msg  
  94. */ 
  95. function compareTwoDate(smallDate, bigDate, msg) {  
  96. var v1 = $(smallDate).value;  
  97. var v2 = $(bigDate).value;  
  98. if (v1 >= v2) {  
  99. alert(msg);  
  100. v2.focus();  
  101. return false;  
  102. }  
  103. return true;  
  104. }  
  105. /**  
  106. * 比較兩個金額大小的方法.  
  107. * @param {較小的金額} smallNum  
  108. * @param {較大的金額} bigNum  
  109. * @param {出錯提示信息} msg  
  110. * @return {Boolean}  
  111. */ 
  112. function compareTwoNum(smallNum, bigNum, msg) {  
  113. var v1 = $(smallNum).value;  
  114. var v2 = $(bigNum).value;  
  115. if (parseFloat(v1) >= parseFloat(v2)) {  
  116. alert(msg);  
  117. v2.focus();  
  118. return false;  
  119. }  
  120. return true;  
  121. }  
  122. /**  
  123. * 檢查文本框的長度是否超出指定長度.  
  124. * @param {文本id} textId  
  125. * @param {文本框的最大長度} len  
  126. * @param {文本框描述內容} msg  
  127. * @return {有錯就返回false,否則返回true}  
  128. */ 
  129. function checkLength(textId, len, msg) {  
  130. obj = $(textId);  
  131. str = obj.value;  
  132. str = str.replace(/[^/x00-/xff]/g, "**");  
  133. realLen = str.length;  
  134. if (realLen > len) {  
  135. alert("[" + msg + "]" + "長度最大為" + len + "位," + "請重新輸入!/n注意:一個漢字占2位。");  
  136. obj.focus();  
  137. return false;  
  138. else 
  139. return true;  
  140. }  
  141. /**  
  142. * 判斷某個文本框不可以為空.  
  143. * @param {文本框id} textId  
  144. * @param {文本框描述內容} msg  
  145. * @return {有錯就返回false,否則返回true}  
  146. */ 
  147. function checkIfEmpty(textId, msg) {  
  148. var textObj = $(textId);  
  149. var textValue = textObj.value;  
  150. if (trim(textValue) == '') {  
  151. alert('[' + msg + ']不得為空!');  
  152. textObj.focus();  
  153. return false;  
  154. else {  
  155. return true;  
  156. }  
  157. }  
  158. /**  
  159. * 判斷指定文本框內容必須為郵件.  
  160. * @param {文本框id} textId  
  161. * @param {文本框描述} msg  
  162. * @return {如果是郵件內容就返回true否則返回false}  
  163. */ 
  164. function checkIsMail(textId, msg) {  
  165. var obj = $(textId);  
  166. if (!_isEmail(obj.value)) {  
  167. alert('[' + msg + ']不是合法的郵件地址!');  
  168. obj.focus();  
  169. return false;  
  170. else 
  171. return true;  
  172. }  
  173. /**  
  174. * 驗證是不是郵件.  
  175. * @param {要驗證的字符串} strEmail  
  176. * @return {Boolean}  
  177. */ 
  178. function _isEmail(strEmail) {  
  179. //接下來的驗證是否有兩個以上的‘.'號,有的話就是錯的!  
  180. var first = strEmail.indexOf('.');  
  181. if (strEmail.indexOf('@')== -1) {  
  182. return false;  
  183. }  
  184. var tempStr = strEmail.substring(first + 1);  
  185. if (tempStr.indexOf('.') != -1) {  
  186. return false;  
  187. }  
  188. if (strEmail  
  189. .search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/) != -1) {  
  190. return true;  
  191. else  
  192. return false;  
  193. }  
  194. /**  
  195. * 判斷某個文本框是否數字.  
  196. * @param {文本框id} textId  
  197. * @param {文本框描述內容} msg  
  198. * @return {Boolean}  
  199. */  
  200. function checkIsNum(textId, msg) {  
  201. obj = $(textId);  
  202. if (isNaN(obj.value)) {  
  203. alert('[' + msg + ']必須為數字。');  
  204. obj.focus();  
  205. return false;  
  206. else  
  207. return true;  
  208. }  
  209. /**  
  210. * 判斷某個文本框是否含有非法字符.  
  211. * @param {文本框的id} textId  
  212. * @param {文本框描述內容} msg  
  213. * @return {有錯就返回false否則返回true}  
  214. */  
  215. function checkIsValid(textId, msg) {  
  216. obj = $(textId);  
  217. if (!_isValidString(obj.value, '[' + msg + ']不得含有非法字符。')) {  
  218. obj.focus();  
  219. return false;  
  220. }  
  221. return true;  
  222. }  
  223. /**  
  224. * 判斷是不是合法字符串.  
  225. * @param {要進行判斷的字符串} szStr  
  226. * @param {文本描述} errMsg  
  227. * @return {合法則返回true否則返回false}  
  228. */  
  229. function _isValidString(szStr,errMsg) {  
  230. voidChar = "'/"><`~!@#$%^&/(/)()?。?hellip;…??“”‘'*";  
  231. for (var i = 0; i < voidChar.length; i++) {  
  232. aChar = voidChar.substring(i, i + 1);  
  233. if (szStr.indexOf(aChar) > -1){  
  234. alert(errMsg)  
  235. return false;  
  236. }  
  237. }  
  238. return true;  
  239. }  
  240. /*************** 以下方法和下拉菜單相關*************************************************/ 
  241. /**  
  242. * 控制下拉菜單不可以為-1(未選擇情況value=-1)  
  243. * @param {下拉菜單id} selectId  
  244. * @param {下拉菜單描述內容} msg  
  245. * @param {下拉菜單的空值對應的value,默認為-1} nullValue  
  246. * @return {Boolean}  
  247. */ 
  248. function checkChooseSelect(selectId, msg ,nullValue) {  
  249. var obj = $(selectId);  
  250. if (obj.value == notNull(nullValue,'-1')) {  
  251. alert('[' + msg + ']必選!');  
  252. obj.focus();  
  253. return false;  
  254. else  
  255. return true;  
  256. }  
  257. /**  
  258. * 得到下拉菜單的顯示的文字.  
  259. * @param {下拉菜單dom對象} selectObj  
  260. * @return {返回下拉菜單的顯示的"文本"}  
  261. */  
  262. function getSelectText(selectObj) {  
  263. return selectObj.options[selectObj.selectedIndex].text;  
  264. }  
  265. /**  
  266. * 得到下拉菜單的顯示的值.  
  267. * @param {下拉菜單dom對象} selectObj  
  268. * @return {得到下拉菜單的顯示的"值"}  
  269. */  
  270. function getSelectValue(selectObj) {  
  271. return selectObj.options[selectObj.selectedIndex].value;  
  272. }  
  273. /**  
  274. * 設置下拉菜單的選擇狀態到指定的值.  
  275. * @param {下拉菜單對象} obj  
  276. * @param {要選擇的值} value  
  277. */  
  278. function setSelectValue(obj, value) {  
  279. /*for (i = obj.options.length - 1; i >= 0; i--) {  
  280. if (obj.options[i].value == value) {  
  281. obj.options[i].selected = true;  
  282. return;  
  283.  
  284.  
  285. */  
  286. obj.value= value;  
  287. }  
  288. /**  
  289. * 根據鍵值串的內容進行下拉菜單的動態組裝  
  290. * @param {要進行下拉菜單組裝的dom對象} obj  
  291. * @param {鍵值對用,和;分割,例如'1,男;2,女;3,未知'} valAndText  
  292. */  
  293. function setSelectContent(obj,valAndText){  
  294. if(trim(valAndText)==''){  
  295. alert('沒有要進行組裝下拉菜單的數據!');  
  296. return false;  
  297. }  
  298. clearSelect(obj);  
  299. var keyandvalues = valAndText.split(';');  
  300. for(var i=0;i<keyandvalues.length;i++){  
  301. var arr = keyandvalues[i].split(',');  
  302. if(arr){  
  303. var value =arr[0];  
  304. var text =arr[1];  
  305. var objOption = new Option(text,value);  
  306. obj.add(objOption);  
  307. }  
  308. }  
  309. }  
  310. /**  
  311. * 清空下拉菜單里面的內容.  
  312. * @param {下拉菜單對象} obj  
  313. */  
  314. function clearSelect(obj) {  
  315. for (var i=obj.options.length; i >0; i--) {  
  316. obj.remove(0);  
  317. }  
  318. }  
  319. /*************** 以下方法和多選框相關*************************************************/  
  320. /**  
  321. * 返回選中的checks的id組成的字符串,逗號隔開.  
  322. * @param {checks數組} checks  
  323. * @return 選擇的id組成的字符串  
  324. */  
  325. function getCheckedIds(checks){  
  326. var selectedValue = '';  
  327. var len = checks.length;  
  328. for(var index=0; index<len; index++) {  
  329. if(checks[index].checked==true) {  
  330. selectedValue += checks[index].value+",";  
  331. }  
  332. }  
  333. if(selectedValue.length>0)  
  334. return selectedValue.substring(0,selectedValue.length-1);  
  335. return selectedValue;  
  336. }  

下面的代碼放到html標簽里,并在head里調用上面的js:

 

 
  1. <HEAD> 
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  3. <!--<<<<<<<<<<<調用上面的js>>>>>>>>>--> 
  4. </HEAD> 
  5. <SCRIPT LANGUAGE="JavaScript">  
  6. <!--  
  7. /**  
  8. * 表單驗證的示例js方法.  
  9. */ 
  10. function check(){  
  11. if(checkIfEmpty('a','非空校驗')  
  12. &&checkIsMail('b','郵箱校驗')  
  13. &&checkIsNum('c','數字校驗')  
  14. &&checkIsValid('d','合法性校驗')  
  15. &&compareTwoDate('e','f','小日期與大日期關系錯誤!')  
  16. &&checkLength('g',5,'長度校驗')  
  17. &&checkChooseSelect('h','下拉菜單非空','-1')  
  18. &&compareTwoNum('k','l','大小數目關系不正確!')){  
  19. alert('校驗通過!');  
  20. return true;  
  21. }else{  
  22. return false;  
  23. }  
  24. }  
  25. /**  
  26. * 取下拉菜單的值和文本的示例js方法.  
  27. */ 
  28. function getSelect(){  
  29. var sss = $('h');  
  30. alert('下拉菜單選擇的文本是:'+getSelectText(sss)+'/n' 
  31. +'下拉菜單選擇的值是:'+getSelectValue(sss));  
  32. }  
  33. /**  
  34. * 根據鍵值字符串設置下拉菜單的顯示內容.  
  35. */ 
  36. function setSelect(){  
  37. var sss = $('i').value;  
  38. setSelectContent($('h'),sss);  
  39. }  
  40. /**  
  41. * 返回多選框數組選擇狀態的id的字符串,結果以逗號隔開.  
  42. */ 
  43. function getMulti(){  
  44. alert('多選選擇的id是:'+getCheckedIds(document.getElementsByName('j')));  
  45. }  
  46. //-->  
  47. </SCRIPT> 
  48. <BODY> 
  49. <table> 
  50. <tr> 
  51. <td> 非空: 
  52. <input id='a'></td> 
  53. <td> checkIfEmpty('a','非空校驗') </td> 
  54. </tr> 
  55. <tr> 
  56. <td> 郵箱: 
  57. <input id='b' value='323232@2323.com'></td> 
  58. <td> checkIsMail('b','郵箱校驗') </td> 
  59. </tr> 
  60. <tr> 
  61. <td> 數字: 
  62. <input id='c' value='aaaa'></td> 
  63. <td> checkIsNum('c','數字校驗') </td> 
  64. </tr> 
  65. <tr> 
  66. <td> 合法字符: 
  67. <input id='d' value='@$@$#$#!%%#'></td> 
  68. <td> checkIsValid('d','合法性校驗') </td> 
  69. </tr> 
  70. <tr> 
  71. <td> 小的日期: 
  72. <input id='e' value='2010-1-1'
  73. 大的日期: 
  74. <input id='f' value='2011-1-1'></td> 
  75. <td> compareTwoDate('e','f','小日期與大日期關系錯誤!') </td> 
  76. </tr> 
  77. <tr> 
  78. <td> 小的數: 
  79. <input id='k' value='12.3'
  80. 大的數: 
  81. <input id='l' value='4564'></td> 
  82. <td> compareTwoNum('k','l','大小數目關系不正確!') </td> 
  83. </tr> 
  84. <tr> 
  85. <td> 字符長度校驗(<5): 
  86. <input id='g'></td> 
  87. <td> checkLength('g',5,'長度校驗') </td> 
  88. </tr> 
  89. <tr> 
  90. <td> 下拉菜單非空校驗: 
  91. <select id='h'
  92. <option value='-1'> 請選擇 </option> 
  93. <option value='1'> 立項 </option> 
  94. <option value='2'> 可研 </option> 
  95. </select></td> 
  96. <td> checkChooseSelect('h','下拉菜單非空','-1') </td> 
  97. </tr> 
  98. <tr> 
  99. <td colspan='2'><button onclick='check()'> 測試表單校驗方法 </button></td> 
  100. </tr> 
  101. <tr> 
  102. <td><button onclick='getSelect()'> 得到下拉菜單的值 </button></td> 
  103. <td> getSelectText(sss)和getSelectValue(sss) </td> 
  104. </tr> 
  105. <tr> 
  106. <td> 輸入下拉菜單的鍵值字符串(如右所示) 
  107. <input id='i' value='1,男;2,女;3,未知'
  108. <button onclick='setSelect()'> 設置下拉菜單的值 </button></td> 
  109. <td> setSelectContent($('h'),sss) </td> 
  110. </tr> 
  111. <tr> 
  112. <td><input type='checkbox' name='j' value='aaa1'
  113. <input type='checkbox' name='j' value='aaa2'
  114. <input type='checkbox' name='j' value='aaa3'
  115. <input type='checkbox' name='j' value='aaa4'
  116. <button onclick='getMulti()'> 得到多選選擇的id </button></td> 
  117. <td> getCheckedIds(document.getElementsByName('j')) </td> 
  118. </tr> 
  119. </table> 
  120. </BODY> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产午夜精品一区理论片飘花| 久久精品99久久久香蕉| 亚洲美女自拍视频| 日韩精品视频在线免费观看| 欧美交受高潮1| 91精品国产91久久久| 午夜精品一区二区三区在线| 国产精品久久婷婷六月丁香| 国产日韩精品综合网站| 一区二区三区四区精品| 国产z一区二区三区| 欧美日韩亚洲一区二| 日韩精品久久久久久福利| 久久久久久这里只有精品| 欧美日韩另类视频| 91av在线免费观看视频| 国产剧情久久久久久| 中日韩美女免费视频网址在线观看| 久久精品中文字幕免费mv| 97视频免费在线看| 成人激情视频在线| 久久久久久久av| 亚洲第一福利在线观看| 伊人久久大香线蕉av一区二区| 欧美一级淫片播放口| 国产精品久久久久久超碰| 国产精品18久久久久久首页狼| 欧美亚洲伦理www| 国产精品久久久久久亚洲影视| 欧美大全免费观看电视剧大泉洋| 亚洲天堂免费在线| 色综合久久中文字幕综合网小说| 北条麻妃99精品青青久久| 综合网中文字幕| 色婷婷**av毛片一区| 成人亚洲欧美一区二区三区| 亚洲一区二区自拍| 日韩精品福利在线| 波霸ol色综合久久| 午夜精品久久久久久久99热| 69国产精品成人在线播放| 俺也去精品视频在线观看| 亚洲乱亚洲乱妇无码| 欧美激情精品久久久久久蜜臀| 成人国内精品久久久久一区| 日韩精品视频免费在线观看| 91精品国产色综合久久不卡98口| 91麻豆国产精品| 亚洲视屏在线播放| 中文国产亚洲喷潮| 国产精品十八以下禁看| 久久噜噜噜精品国产亚洲综合| 中文字幕欧美视频在线| 一区二区欧美日韩视频| 久久99久久99精品免观看粉嫩| 国产午夜精品一区二区三区| www国产91| 不卡av电影院| 一区二区三区四区在线观看视频| 欧美激情小视频| 欧亚精品中文字幕| 欧美激情视频给我| 这里只有视频精品| 亚洲精品电影在线观看| 亚洲男人7777| 亚洲影视中文字幕| 亚洲欧美日韩直播| 国产精品美女999| 欧美日韩在线视频首页| 国产美女精品视频免费观看| 欧美日韩在线视频观看| 国自在线精品视频| 亚洲经典中文字幕| 在线精品视频视频中文字幕| 国产亚洲欧洲黄色| 亚洲欧美在线一区| 国产免费亚洲高清| 国产精品久久久久久久久免费看| 亚洲成色999久久网站| 日韩一区二区福利| 91精品视频免费看| 麻豆国产精品va在线观看不卡| 51视频国产精品一区二区| 日本欧美一级片| 国产午夜精品理论片a级探花| 夜夜嗨av一区二区三区四区| 欧美日韩亚洲国产一区| 欧美激情免费在线| 在线观看欧美日韩| 亚洲男女性事视频| 性色av一区二区咪爱| 96国产粉嫩美女| 九九热精品在线| 国产色婷婷国产综合在线理论片a| 色先锋久久影院av| 亚洲第一男人av| 亚洲在线免费观看| 亚洲欧美激情四射在线日| 欧美黑人一级爽快片淫片高清| 日韩欧亚中文在线| 欧美极品少妇xxxxⅹ免费视频| 精品中文字幕在线观看| 欧美日韩中国免费专区在线看| 日韩免费观看网站| 久久久久久久久综合| 国产精品va在线播放我和闺蜜| 国产精品高清在线| 播播国产欧美激情| 亚洲欧美制服丝袜| 在线观看成人黄色| 亚洲一区久久久| 久久久免费在线观看| 久久成人精品一区二区三区| 亚洲国产日韩精品在线| 久久久国产成人精品| 91免费看片网站| 国产精品爱久久久久久久| 欧美夫妻性生活视频| 成人美女av在线直播| 奇米成人av国产一区二区三区| 国产亚洲视频中文字幕视频| 久久综合久久美利坚合众国| 欧美日韩在线免费| 国产专区欧美专区| 激情成人在线视频| 亚洲国产古装精品网站| 亚洲国产精品一区二区三区| 国产91精品青草社区| 亚洲精品久久久久中文字幕欢迎你| 日韩精品久久久久久久玫瑰园| 亚洲最新av网址| 综合网中文字幕| 欧美在线观看www| 国产精品网红福利| 日韩精品高清在线| 亚洲男人天堂视频| 亚洲欧美日韩一区在线| 亚洲国产精久久久久久| 久久久久久亚洲精品中文字幕| 亚洲精品色婷婷福利天堂| 国产精品久久久久久久av电影| 国产免费一区二区三区香蕉精| 国内久久久精品| 高清欧美性猛交xxxx| 国产精品av电影| 亚洲欧美日本精品| 欧美日韩国产中文精品字幕自在自线| 欧美老女人在线视频| 欧美性猛交丰臀xxxxx网站| 日韩精品欧美激情| 亚洲精品一区中文字幕乱码| 国产精品中文字幕在线| 国产一区二区三区视频免费| 欧美影院在线播放| 92看片淫黄大片欧美看国产片| 亚洲欧洲美洲在线综合| 久久久免费高清电视剧观看| 伊人伊人伊人久久| 日韩成人网免费视频| 日韩精品免费一线在线观看| 亚洲视频自拍偷拍| 亚洲欧美三级伦理| 色悠久久久久综合先锋影音下载| 成人有码在线播放|