utils.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. /* $Id : utils.js 5052 2007-02-03 10:30:13Z weberliu $ */
  2. var Browser = new Object();
  3. Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
  4. Browser.isIE = window.ActiveXObject ? true : false;
  5. Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);
  6. Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);
  7. Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1);
  8. var Utils = new Object();
  9. Utils.htmlEncode = function(text)
  10. {
  11. return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  12. }
  13. Utils.trim = function( text )
  14. {
  15. if (typeof(text) == "string")
  16. {
  17. return text.replace(/^\s*|\s*$/g, "");
  18. }
  19. else
  20. {
  21. return text;
  22. }
  23. }
  24. Utils.isEmpty = function( val )
  25. {
  26. switch (typeof(val))
  27. {
  28. case 'string':
  29. return Utils.trim(val).length == 0 ? true : false;
  30. break;
  31. case 'number':
  32. return val == 0;
  33. break;
  34. case 'object':
  35. return val == null;
  36. break;
  37. case 'array':
  38. return val.length == 0;
  39. break;
  40. default:
  41. return true;
  42. }
  43. }
  44. Utils.isNumber = function(val)
  45. {
  46. var reg = /^[\d|\.|,]+$/;
  47. return reg.test(val);
  48. }
  49. Utils.isInt = function(val)
  50. {
  51. if (val == "")
  52. {
  53. return false;
  54. }
  55. var reg = /\D+/;
  56. return !reg.test(val);
  57. }
  58. Utils.isEmail = function( email )
  59. {
  60. var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
  61. return reg1.test( email );
  62. }
  63. Utils.isMobile = function ( mobile )
  64. {
  65. var reg = /^1\d{10}$/; //11位数字,以1开头。
  66. return reg.test( mobile );
  67. }
  68. Utils.isTel = function ( tel )
  69. {
  70. var reg = /^[\d|\-|\s|\_]+$/; //只允许使用数字-空格等
  71. reg = /^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$/;
  72. return reg.test( tel );
  73. }
  74. Utils.fixEvent = function(e)
  75. {
  76. var evt = (typeof e == "undefined") ? window.event : e;
  77. return evt;
  78. }
  79. Utils.srcElement = function(e)
  80. {
  81. if (typeof e == "undefined") e = window.event;
  82. var src = document.all ? e.srcElement : e.target;
  83. return src;
  84. }
  85. Utils.isTime = function(val)
  86. {
  87. var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/;
  88. return reg.test(val);
  89. }
  90. Utils.x = function(e)
  91. { //当前鼠标X坐标
  92. return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX;
  93. }
  94. Utils.y = function(e)
  95. { //当前鼠标Y坐标
  96. return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY;
  97. }
  98. Utils.request = function(url, item)
  99. {
  100. var sValue=url.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"));
  101. return sValue?sValue[1]:sValue;
  102. }
  103. Utils.$ = function(name)
  104. {
  105. return document.getElementById(name);
  106. }
  107. function rowindex(tr)
  108. {
  109. if (Browser.isIE)
  110. {
  111. return tr.rowIndex;
  112. }
  113. else
  114. {
  115. table = tr.parentNode.parentNode;
  116. for (i = 0; i < table.rows.length; i ++ )
  117. {
  118. if (table.rows[i] == tr)
  119. {
  120. return i;
  121. }
  122. }
  123. }
  124. }
  125. document.getCookie = function(sName)
  126. {
  127. // cookies are separated by semicolons
  128. var aCookie = document.cookie.split("; ");
  129. for (var i=0; i < aCookie.length; i++)
  130. {
  131. // a name/value pair (a crumb) is separated by an equal sign
  132. var aCrumb = aCookie[i].split("=");
  133. if (sName == aCrumb[0])
  134. return decodeURIComponent(aCrumb[1]);
  135. }
  136. // a cookie with the requested name does not exist
  137. return null;
  138. }
  139. document.setCookie = function(sName, sValue, sExpires)
  140. {
  141. var sCookie = sName + "=" + encodeURIComponent(sValue);
  142. if (sExpires != null)
  143. {
  144. sCookie += "; expires=" + sExpires;
  145. }
  146. document.cookie = sCookie;
  147. }
  148. document.removeCookie = function(sName,sValue)
  149. {
  150. document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
  151. }
  152. function getPosition(o)
  153. {
  154. var t = o.offsetTop;
  155. var l = o.offsetLeft;
  156. while(o = o.offsetParent)
  157. {
  158. t += o.offsetTop;
  159. l += o.offsetLeft;
  160. }
  161. var pos = {top:t,left:l};
  162. return pos;
  163. }
  164. function cleanWhitespace(element)
  165. {
  166. var element = element;
  167. for (var i = 0; i < element.childNodes.length; i++) {
  168. var node = element.childNodes[i];
  169. if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
  170. element.removeChild(node);
  171. }
  172. }