国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > 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("當前棧空,無法讀取數據");  
  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開始的毫秒數) 時間戳!!  
  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 = "'/"><`~!@#$%^&/(/)()!¥……??“”‘'*";  
  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> 

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

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

圖片精選

主站蜘蛛池模板: 罗山县| 南开区| 花莲县| 华亭县| 云梦县| 屏边| 黄平县| 建水县| 都江堰市| 东兴市| 江油市| 玛曲县| 克什克腾旗| 威海市| 景洪市| 连南| 崇阳县| 扶风县| 嵊州市| 宝丰县| 高雄市| 西平县| 双城市| 商城县| 新蔡县| 奉化市| 泽库县| 沈丘县| 奇台县| 叶城县| 铁岭县| 拜泉县| 永福县| 叶城县| 盐亭县| 双鸭山市| 邻水| 新乐市| 剑河县| 双流县| 大关县|