字符串函数

  1. indexOf
  2. 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1
  3. var index1 = a.indexOf("l");
  4. //index1 = 2
  5. var index2 = a.indexOf("l",3);
  6. //index2 = 3
  7.  
  8. lastIndexOf
  9. 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1
  10. var index1 = lastIndexOf('l');
  11. //index1 = 3
  12. var index2 = lastIndexOf('l',2)
  13. //index2 = 2
  14.  
  15. slice
  16. 提取字符串的一部分,并返回一个新字符串(与 substring 相同)。
  17. var sub_string1 = a.slice(1);
  18. //sub_string1 = "ello"
  19. var sub_string2 = a.slice(1,4);
  20. //sub_string2 = "ell"
  21.  
  22. substring
  23. 返回字符串的一个子串,传入参数是起始位置和结束位置。
  24. var sub_string1 = a.substring(1);
  25. //sub_string1 = "ello"
  26. var sub_string2 = a.substring(1,4);
  27. //sub_string2 = "ell"
  28.  
  29. substr
  30. 返回字符串的一个子串,传入参数是起始位置和长度
  31. var sub_string1 = a.substr(1);
  32. //sub_string1 = "ello"
  33. var sub_string2 = a.substr(1,4);
  34. //sub_string2 = "ello"
  35.  
  36. toLowerCase
  37. 将整个字符串转成小写字母。
  38. var lower_string = a.toLowerCase();
  39. //lower_string = "hello"
  40.  
  41. toUpperCase
  42. 将整个字符串转成大写字母。
  43. var upper_string = a.toUpperCase();
  44. //upper_string = "HELLO"
  45.  
  46. concat
  47. 将两个或多个字符的文本组合起来,返回一个新的字符串。
  48. var a = "hello";
  49. var b = ",world";
  50. var c = a.concat(b);
  51. alert(c);
  52. //c = "hello,world"
  53.  
  54. split
  55. 通过将字符串划分成子串,将一个字符串做成一个字符串数组。
  56. var arr1 = a.split("");
  57. //arr1 = [h,e,l,l,o]
  58.  
  59. charAt
  60. 返回指定位置的字符。
  61. var get_char = a.charAt(0);
  62. //get_char = "h"
  63.  
  64. length
  65. 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
  66. var len = a.length();
  67. //len = 5
  68.  
  69. match
  70. 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null
  71. var re = new RegExp(/^\w+$/);
  72. var is_alpha1 = a.match(re);
  73. //is_alpha1 = "hello"
  74. var is_alpha2 = b.match(re);
  75. //is_alpha2 = null
  76.  
  77. replace
  78. 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
  79. var result1 = a.replace(re,"Hello");
  80. //result1 = "Hello"
  81. var result2 = b.replace(re,"Hello");
  82. //result2 = ",world"
  83.  
  84. search
  85. 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1
  86. var index1 = a.search(re);
  87. //index1 = 0
  88. var index2 = b.search(re);
  89. //index2 = -1

自带函数

  1. //去除前后空格
  2. String.prototype.Trim = function()
  3. {
  4. return this.replace(/(^\s*)|(\s*$)/g, "");
  5. }
  6.  
  7. //得到中间的字符串,注意从0开始
  8. String.prototype.Mid = function(start,len)
  9. {
  10. return this.substr(start,len);
  11. }
  12.  
  13. //在字符串里查找另一字符串:位置从0开始
  14. String.prototype.InStr = function(str)
  15. {
  16.  
  17. if(str==null)
  18. {
  19. str = "";
  20. }
  21.  
  22. return this.indexOf(str);
  23. }
  24.  
  25. //在字符串里反向查找另一字符串:位置0开始
  26. String.prototype.InStrRev = function(str)
  27. {
  28.  
  29. if(str==null)
  30. {
  31. str = "";
  32. }
  33.  
  34. return this.lastIndexOf(str);
  35. }
  36.  
  37. //是否是正确的IP地址
  38. String.prototype.isIP = function()
  39. {
  40.  
  41. var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
  42.  
  43. if (reSpaceCheck.test(this))
  44. {
  45. this.match(reSpaceCheck);
  46. if (RegExp.$ <= && RegExp.$ >=
  47. && RegExp.$ <= && RegExp.$ >=
  48. && RegExp.$ <= && RegExp.$ >=
  49. && RegExp.$ <= && RegExp.$ >= )
  50. {
  51. return true;
  52. }
  53. else
  54. {
  55. return false;
  56. }
  57. }
  58. else
  59. {
  60. return false;
  61. }
  62.  
  63. }
  64.  
  65. //是否是正确的长日期
  66. String.prototype.isLongDate = function()
  67. {
  68. var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{,})(-|\/)(\d{,})\(\d{,}) (\d{,}):(\d{,}):(\d{,})$/);
  69. if(r==null)
  70. {
  71. return false;
  72. }
  73. var d = new Date(r[], r[]-,r[],r[],r[],r[]);
  74. return (d.getFullYear()==r[]&&(d.getMonth()+)==r[]&&d.getDate()==r[]&&d.getHours()==r[]&&d.getMinutes()==r[]&&d.getSeconds()==r[]);
  75.  
  76. }
  77.  
  78. //是否是正确的短日期
  79. String.prototype.isShortDate = function()
  80. {
  81. var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{,})(-|\/)(\d{,})\(\d{,})$/);
  82. if(r==null)
  83. {
  84. return false;
  85. }
  86. var d = new Date(r[], r[]-, r[]);
  87. return (d.getFullYear()==r[]&&(d.getMonth()+)==r[]&&d.getDate()==r[]);
  88. }
  89.  
  90. //是否是正确的日期
  91. String.prototype.isDate = function()
  92. {
  93. return this.isLongDate()||this.isShortDate();
  94. }
  95.  
  96. //是否是手机
  97. String.prototype.isMobile = function()
  98. {
  99. return /^{,}[-]{}$/.test(this);
  100. }
  101.  
  102. //是否是邮件
  103. String.prototype.isEmail = function()
  104. {
  105. return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-]+((\.|-)[A-Za-z0-]+)*\.[A-Za-z0-]+$/.test(this);
  106. }
  107.  
  108. //是否是邮编(中国)
  109. String.prototype.isZipCode = function()
  110. {
  111. return /^[\\d]{}$/.test(this);
  112. }
  113.  
  114. //是否是有汉字
  115. String.prototype.existChinese = function()
  116. {
  117. //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號
  118. return /^[\x00-\xff]*$/.test(this);
  119. }
  120.  
  121. //是否是合法的文件名/目录名
  122. String.prototype.isFileName = function()
  123. {
  124. return !/[\\\/\*\?\|:"<>]/g.test(this);
  125. }
  126.  
  127. //是否是有效链接
  128. String.prototype.isUrl = function()
  129. {
  130. return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);
  131. }
  132.  
  133. //是否是有效的身份证(中国)
  134. String.prototype.isIDCard = function()
  135. {
  136. var iSum=;
  137. var info="";
  138. var sId = this;
  139.  
  140. var aCity={:"北京",:"天津",:"河北",:"山西",:"内蒙古",:"辽宁",:"吉林",:"黑龙 江",:"上海",:"江苏",:"浙江",:"安徽",:"福建",:"江西",:"山东",:"河南",:"湖 北",:"湖南",:"广东",:"广西",:"海南",:"重庆",:"四川",:"贵州",:"云南",:"西藏",:"陕西",:"甘肃",:"青海",:"宁夏",:"新疆",:"台湾",:"香港",:"澳门",:"国外"};
  141.  
  142. if(!/^\d{}(\d|x)$/i.test(sId))
  143. {
  144. return false;
  145. }
  146. sId=sId.replace(/x$/i,"a");
  147. //非法地区
  148. if(aCity[parseInt(sId.substr(,))]==null)
  149. {
  150. return false;
  151. }
  152.  
  153. var sBirthday=sId.substr(,)+"-"+Number(sId.substr(,))+"-"+Number(sId.substr(,));
  154.  
  155. var d=new Date(sBirthday.replace(/-/g,"/"))
  156.  
  157. //非法生日
  158. if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+) + "-" + d.getDate()))
  159. {
  160. return false;
  161. }
  162. for(var i = ;i>=;i--)
  163. {
  164. iSum += (Math.pow(,i) % ) * parseInt(sId.charAt( - i),);
  165. }
  166.  
  167. if(iSum%!=)
  168. {
  169. return false;
  170. }
  171. return true;
  172.  
  173. }
  174.  
  175. //检测身份证号 18和15
  176. function checkIdcard(num) {
  177. console.info(num);
  178. num = num.toLocaleUpperCase();
  179. console.info(num);
  180. //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
  181. if (!(/(^\d{}$)|(^\d{}([-]|X)$)/.test(num))) {
  182. return false;
  183. }
  184. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  185. //下面分别分析出生日期和校验位
  186. var len, re;
  187. len = num.length;
  188. if (len == ) {
  189. re = new RegExp(/^(\d{})(\d{})(\d{})(\d{})(\d{})$/);
  190. var arrSplit = num.match(re);
  191.  
  192. //检查生日日期是否正确
  193. var dtmBirth = new Date('' + arrSplit[] + '/' + arrSplit[] + '/' + arrSplit[]);
  194. var bGoodDay;
  195. bGoodDay = (dtmBirth.getYear() == Number(arrSplit[])) && ((dtmBirth.getMonth() + ) == Number(arrSplit[])) && (dtmBirth.getDate() == Number(arrSplit[]));
  196. if (!bGoodDay) {
  197. return false;
  198. }
  199. else {
  200. //将15位身份证转成18位
  201. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  202. var arrInt = new Array(, , , , , , , , , , , , , , , , );
  203. var arrCh = new Array('', '', 'X', '', '', '', '', '', '', '', '');
  204. var nTemp = , i;
  205. num = num.substr(, ) + '' + num.substr(, num.length - );
  206. for (i = ; i < ; i++) {
  207. nTemp += num.substr(i, ) * arrInt[i];
  208. }
  209. num += arrCh[nTemp % ];
  210. return true;
  211. }
  212. }
  213. if (len == ) {
  214. re = new RegExp(/^(\d{})(\d{})(\d{})(\d{})(\d{})([-]|X)$/);
  215. var arrSplit = num.match(re);
  216.  
  217. //检查生日日期是否正确
  218. var dtmBirth = new Date(arrSplit[] + "/" + arrSplit[] + "/" + arrSplit[]);
  219. var bGoodDay;
  220. bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[])) && ((dtmBirth.getMonth() + ) == Number(arrSplit[])) && (dtmBirth.getDate() == Number(arrSplit[]));
  221. if (!bGoodDay) {
  222. return false;
  223. }
  224. else {
  225. //检验18位身份证的校验码是否正确。
  226. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  227. var valnum;
  228. var arrInt = new Array(, , , , , , , , , , , , , , , , );
  229. var arrCh = new Array('', '', 'X', '', '', '', '', '', '', '', '');
  230. var nTemp = , i;
  231. for (i = ; i < ; i++) {
  232. nTemp += num.substr(i, ) * arrInt[i];
  233. }
  234. valnum = arrCh[nTemp % ];
  235. if (valnum != num.substr(, )) {
  236. return false;
  237. }
  238. return true;
  239. }
  240. }
  241. return false;
  242. };
  243.  
  244. //是否是有效的电话号码(中国)
  245. String.prototype.isPhoneCall = function()
  246. {
  247. return /(^[-]{,}\-[-]{,}$)|(^[-]{,}$)|(^\([-]{,}\)[-]{,}$)|(^{,}[-]{}$)/.test(this);
  248. }
  249.  
  250. //是否是颜色(#FFFFFF形式)
  251. String.prototype.IsColor = function()
  252. {
  253. var temp = this;
  254. if (temp=="") return true;
  255. if (temp.length!=) return false;
  256. return (temp.search(/\#[a-fA-F0-]{}/) != -);
  257. }
  258.  
  259. //对字符串进行Html编码
  260. String.prototype.toHtmlEncode = function()
  261. {
  262. var str = this;
  263.  
  264. str=str.replace(/&/g,"&amp;");
  265. str=str.replace(/</g,"&lt;");
  266. str=str.replace(/>/g,"&gt;");
  267. str=str.replace(/\'/g,"&apos;");
  268. str=str.replace(/\"/g,"&quot;");
  269. str=str.replace(/\n/g,"<br>");
  270. str=str.replace(/\ /g,"&nbsp;");
  271. str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
  272.  
  273. return str;
  274. }
  275.  
  276. //转换成日期
  277. String.prototype.toDate = function()
  278. {
  279. try
  280. {
  281. return new Date(this.replace(/-/g, "\/"));
  282. }
  283. catch(e)
  284. {
  285. return null;
  286. }
  287. }

扩展函数

日期函数

  1. //创建新的 Date 对象
  2.  
  3.   语法:
  4.    new Date();
  5.    new Date(year [, month [, date [, hour [, minute [, second [, millisecond ]]]]]] );
  6.   参数:
  7.    year     是一个 0 99 之间的整数,对应于 1900 1999 年,或者为四位数字指定确定的年份;
  8.    month    是一个 0 (一月) 11 (十二月) 之间的整数,这个参数是可选的;
  9.    date     是一个 1 31 之间的整数,这个参数是可选的;
  10.    hour     是一个 0 (0:00am) 23 (11:00pm) 之间的整数,这个参数是可选的;
  11.    minute    是一个 0 59 之间的整数,这个参数是可选的;
  12.    second    是一个 0 59 之间的整数,这个参数是可选的;
  13.    millisecond 是一个 0 999 之间的整数,这个参数是可选的;
  14. var d = new Date();
  15. //Thu Jul 02 2015 18:08:26 GMT+0800
  16. var d2 = new Date(2010, 1, 1, 2, 2, 2, 300);
  17. //Mon Feb 01 2010 02:02:02 GMT+0800

创建日期

  1. //获取时间
  2.   ·getFullYear    | 根据本地时间获取当前年份(四位数字)
  3.   ·getYear      | 根据本地时间获取当前缩写年份(当前年份减去1900)
  4.   ·getMonth      | 根据本地时间获取当前月份(注意从0开始:0-Jan,1-Feb...)
  5. ·getDate      | 根据本地时间获取当前日期(本月的几号)
  6.   ·getHours      | 根据本地时间获取当前小时数(24小时制,0-23)
  7.   ·getMinutes     | 根据本地时间获取当前分钟数
  8.   ·getSeconds     | 根据本地时间获取当前秒数
  9.   ·getMilliseconds  | 根据本地时间获取当前毫秒数
  10.   ·getTime      | 获取UTC格式的从1970.1.1 0:00以来的毫秒数
  11.   ·getTimezoneOffset | 获取当前时间和UTC格式的偏移值(以分钟为单位)
  12.   ·getDay       | 根据本地时间获取今天是星期几(0-Sunday,1-Monday...)
  13.  
  14. //设置时间
  15.   ·setFullYear    | 设置当前年份(四位数字)
  16.   ·setYear      | 设置当前缩写年份(当前年份减去1900)
  17.   ·setMonth      | 设置当前月份(注意从0开始:0-Jan,1-Feb...)
  18.   ·setDate      | 设置当前日期(本月的几号)
  19.   ·setHours      | 设置当前小时数(24小时制,0-23)
  20.   ·setMinutes     | 设置当前分钟数
  21.   ·setSeconds     | 设置当前秒数
  22.   ·setMilliseconds  | 设置当前毫秒数
  23.   ·setTime      | 设置UTC格式的从1970.1.1 0:00以来的毫秒数
  24.  
  25. //其他方式
  26.   ·setUTCDate     | 设置UTC格式的当前日期(本月的几号)
  27.   ·setUTCFullYear   | 设置UTC格式的当前年份(四位数字)
  28.   ·setUTCHours    | 设置UTC格式的当前小时数(24小时制,0-23)
  29.   ·setUTCMilliseconds | 设置UTC格式的当前毫秒数
  30.   ·setUTCMinutes   | 设置UTC格式的当前分钟数
  31.   ·setUTCMonth    | 设置UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)
  32.   ·setUTCSeconds   | 设置UTC格式的当前秒数
  33.  
  34.   ·getUTCDate     | 获取UTC格式的当前日期(本月的几号)
  35.   ·getUTCDay     | 获取UTC格式的今天是星期几(0-Sunday,1-Monday...)
  36.   ·getUTCFullYear   | 获取UTC格式的当前年份(四位数字)
  37.   ·getUTCHours    | 获取UTC格式的当前小时数(24小时制,0-23)
  38.   ·getUTCMilliseconds | 获取UTC格式的当前毫秒数
  39.   ·getUTCMinutes   | 获取UTC格式的当前分钟数
  40.   ·getUTCMonth    | 获取UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)
  41.   ·getUTCSeconds   | 获取UTC格式的当前秒数
  42.  
  43.   ·toString      | 将日期时间值转换成"日期/时间"形式的字符串值
  44.   ·Date.UTC      | 返回指定的UTC格式日期时间的固定时间值

自带函数

  1. //---------------------------------------------------
  2. // 判断闰年
  3. //---------------------------------------------------
  4. Date.prototype.isLeapYear = function()
  5. {
  6. return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));
  7. }
  8.  
  9. //+---------------------------------------------------
  10. //| 求两个时间的天数差 日期格式为 YYYY-MM-dd
  11. //+---------------------------------------------------
  12. function daysBetween(DateOne,DateTwo)
  13. {
  14. var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));
  15. var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);
  16. var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));
  17.  
  18. var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));
  19. var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);
  20. var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));
  21.  
  22. var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
  23. return Math.abs(cha);
  24. }
  25.  
  26. //+---------------------------------------------------
  27. //| 日期计算
  28. //+---------------------------------------------------
  29. Date.prototype.DateAdd = function(strInterval, Number) {
  30. var dtTmp = this;
  31. switch (strInterval) {
  32. case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));
  33. case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));
  34. case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));
  35. case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));
  36. case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
  37. case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  38. case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  39. case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  40. }
  41. }
  42.  
  43. //+---------------------------------------------------
  44. //| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串
  45. //+---------------------------------------------------
  46. Date.prototype.DateDiff = function(strInterval, dtEnd) {
  47. var dtStart = this;
  48. if (typeof dtEnd == 'string' )//如果是字符串转换为日期型
  49. {
  50. dtEnd = StringToDate(dtEnd);
  51. }
  52. switch (strInterval) {
  53. case 's' :return parseInt((dtEnd - dtStart) / 1000);
  54. case 'n' :return parseInt((dtEnd - dtStart) / 60000);
  55. case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
  56. case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
  57. case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));
  58. case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
  59. case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
  60. }
  61. }
  62.  
  63. //+---------------------------------------------------
  64. //| 日期输出字符串,重载了系统的toString方法
  65. //+---------------------------------------------------
  66. Date.prototype.toString = function(showWeek)
  67. {
  68. var myDate= this;
  69. var str = myDate.toLocaleDateString();
  70. if (showWeek)
  71. {
  72. var Week = ['日','一','二','三','四','五','六'];
  73. str += ' 星期' + Week[myDate.getDay()];
  74. }
  75. return str;
  76. }
  77.  
  78. //+---------------------------------------------------
  79. //| 日期合法性验证
  80. //| 格式为:YYYY-MM-DD或YYYY/MM/DD
  81. //+---------------------------------------------------
  82. function IsValidDate(DateStr)
  83. {
  84. var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); //去两边空格;
  85. if(sDate=='') return true;
  86. //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''
  87. //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式
  88. var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');
  89. if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
  90. {
  91. var t=new Date(sDate.replace(/\-/g,'/'));
  92. var ar = sDate.split(/[-/:]/);
  93. if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())
  94. {
  95. //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
  96. return false;
  97. }
  98. }
  99. else
  100. {
  101. //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
  102. return false;
  103. }
  104. return true;
  105. }
  106.  
  107. //+---------------------------------------------------
  108. //| 日期时间检查
  109. //| 格式为:YYYY-MM-DD HH:MM:SS
  110. //+---------------------------------------------------
  111. function CheckDateTime(str)
  112. {
  113. var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
  114. var r = str.match(reg);
  115. if(r==null)return false;
  116. r[2]=r[2]-1;
  117. var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
  118. if(d.getFullYear()!=r[1])return false;
  119. if(d.getMonth()!=r[2])return false;
  120. if(d.getDate()!=r[3])return false;
  121. if(d.getHours()!=r[4])return false;
  122. if(d.getMinutes()!=r[5])return false;
  123. if(d.getSeconds()!=r[6])return false;
  124. return true;
  125. }
  126.  
  127. //+---------------------------------------------------
  128. //| 把日期分割成数组
  129. //+---------------------------------------------------
  130. Date.prototype.toArray = function()
  131. {
  132. var myDate = this;
  133. var myArray = Array();
  134. myArray[0] = myDate.getFullYear();
  135. myArray[1] = myDate.getMonth();
  136. myArray[2] = myDate.getDate();
  137. myArray[3] = myDate.getHours();
  138. myArray[4] = myDate.getMinutes();
  139. myArray[5] = myDate.getSeconds();
  140. return myArray;
  141. }
  142.  
  143. //+---------------------------------------------------
  144. //| 取得日期数据信息
  145. //| 参数 interval 表示数据类型
  146. //| y 年 m月 d日 w星期 ww周 h时 n分 s秒
  147. //+---------------------------------------------------
  148. Date.prototype.DatePart = function(interval)
  149. {
  150. var myDate = this;
  151. var partStr='';
  152. var Week = ['日','一','二','三','四','五','六'];
  153. switch (interval)
  154. {
  155. case 'y' :partStr = myDate.getFullYear();break;
  156. case 'm' :partStr = myDate.getMonth()+1;break;
  157. case 'd' :partStr = myDate.getDate();break;
  158. case 'w' :partStr = Week[myDate.getDay()];break;
  159. case 'ww' :partStr = myDate.WeekNumOfYear();break;
  160. case 'h' :partStr = myDate.getHours();break;
  161. case 'n' :partStr = myDate.getMinutes();break;
  162. case 's' :partStr = myDate.getSeconds();break;
  163. }
  164. return partStr;
  165. }
  166.  
  167. //+---------------------------------------------------
  168. //| 取得当前日期所在月的最大天数
  169. //+---------------------------------------------------
  170. Date.prototype.MaxDayOfDate = function()
  171. {
  172. var myDate = this;
  173. var ary = myDate.toArray();
  174. var date1 = (new Date(ary[0],ary[1]+1,1));
  175. var date2 = date1.dateAdd(1,'m',1);
  176. var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));
  177. return result;
  178. }
  179.  
  180. //+---------------------------------------------------
  181. //| 取得当前日期所在周是一年中的第几周
  182. //+---------------------------------------------------
  183. Date.prototype.WeekNumOfYear = function()
  184. {
  185. var myDate = this;
  186. var ary = myDate.toArray();
  187. var year = ary[0];
  188. var month = ary[1]+1;
  189. var day = ary[2];
  190. document.write('< script language=VBScript\> \n');
  191. document.write('myDate = DateValue(''+month+'-'+day+'-'+year+'') \n');
  192. document.write('result = DatePart('ww', myDate) \n');
  193. document.write(' \n');
  194. return result;
  195. }
  196.  
  197. //+---------------------------------------------------
  198. //| 字符串转成日期类型
  199. //| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
  200. //+---------------------------------------------------
  201. function StringToDate(DateStr)
  202. {
  203.  
  204. var converted = Date.parse(DateStr);
  205. var myDate = new Date(converted);
  206. if (isNaN(myDate))
  207. {
  208. //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
  209. var arys= DateStr.split('-');
  210. myDate = new Date(arys[0],--arys[1],arys[2]);
  211. }
  212. return myDate;
  213. }

扩展函数

  1. js 时间间隔执行函数
  2. JavaScript 支持暂停和时间间隔,这课有效的告诉浏览器应该何时执行某行代码。暂停就是在指定的毫秒数。
  3. 1setTimeout('function',time):
  4. 第一个参数可以是代码串,也是可以函数指针,第二个参数是暂停时间(秒)。
  5. function time(){
  6. alert('执行');
  7. }
  8. window.onload=function(){
  9. setTimeout(time,1000);
  10. }
  11. 这个表示在一秒后执行time()函数,调用setTimeout()时,它创见一个数字暂停ID,与操作系统的进程ID相似。暂停ID本质上是要延迟的进程的ID,在调用setTimeout()时后,就不应该在执行其他代码。想取消还未执行的暂停,可以用clearTimeout()来取消,
  12. 2clearTimeout():
  13. 接受一个参数:执行setTimeout()时,创建的暂停ID
  14.  
  15. <script>
  16. var s = 0;
  17. function run(){
  18. s = setTimeout(a,1000)
  19. }
  20. function a(){
  21. alert(2)
  22. }
  23. function stop(){
  24. clearTimeout(s)
  25. }
  26. </script>
  27.  
  28. <input type='button' value='run' onclick='run()'>
  29. <input type='button' value='stop' onclick='stop()'>
  30.  
  31. 在按下run时出发run()函数,执行setTimeout()并将创建的ID传给s,在一秒后执行a(),如果在1秒内点击stop就会停止setTimeout()函数的执行。
  32.  
  33. 2、还有一种执行方法,与暂停类似,setInterval()就是时间间隔表示在某段时间内不停的去执行一行代码,除了停止它否则会一直执行下去,这就是与setTimeout()不同之处,一个是暂停多少秒后执行一次,而setInterval()是一直执行。
  34. function time(){
  35. alert('执行');
  36. }
  37. window.onload=function(){
  38. setInterval(time,1000);
  39. }
  40.  
  41. 1秒内不停的调用time().和setTimeout()一样setInterval()也有停止它的函数,clearInterval()停止函数执行。
  42.  
  43. <script>
  44. var s = 0;
  45. function run(){
  46. s = setInterval(a,1000)
  47. }
  48. function a(){
  49. alert(2)
  50. }
  51. function stop(){
  52. clearInterval(s)
  53. }
  54.  
  55. </script>
  56.  
  57. <input type='button' value='run' onclick='run()'>
  58. <input type='button' value='stop' onclick='stop()'>
  59.  
  60. 在按下run时出发run()函数,执行setInterval()并将创建的ID传给s,在一秒后执行a(),如果在1秒内点击stop就会停止setInterval()函数的执行。否则就会一直执行a()函数,这是与setTimeout()的不同之处
  61.  
  62. 如何选择使用那种方法,在执行一组代码前要等待一段时间,就使用暂停setTimeout(),如果要反复的去执行一组代码时就用间隔setInterout().

时间执行间隔

数值函数

  1. 常数和乘方函数
  2.  
  3. Math.E 自然对数的底(为常数) 2.718
  4. Math.LN10 10的自然对数 2.302
  5. Math.LN2 2的自然对数 0.693
  6. Math.PI 圆周率 3.1415
  7. Math.SQRT1_2 1/2的平方根 0.707
  8. Math.SQRT2 2的平方根 1.414
  9. Math.sqrt(x) X的平方根 X的值有关
  10. Math.pow(x, n) 返回xn次方的数值 参数为xn
  11. Math.log(n) 返回n的自然对数 参数为n
  12. Math.exp(n) 返回en次方的数值 参数为n
  13.  
  14. 三角函数
  15.  
  16. Math.cos(x) X的余弦函数
  17. Math.sin(x) X的正弦函数
  18. Math.tan(x) X的正切函数
  19. Math.acos(y) X的反余弦函数
  20. Math.asin(y) X的反正弦函数
  21. Math.atan(y) X的反正切函数
  22.  
  23. //这里注意:参数x和以及反函数的返回数值的单位都为弧度(比如 PI弧度=180度)
  24.  
  25. 舍入函数和随机数字
  26.  
  27. Math.random() 产生从01的随机数
  28. Math.round(x) 取最接近整数x的数值
  29. Math.floor(x) 取最接近整数x并且比x小的数值
  30. Math.ceil(x) 取最接近整数x并且比x大的数值
  31. Math.min(a, b, c) 返回参数列表中最小的数值
  32. Math.max(a, b, c) 返回参数列表中最大的数值
  33.  
  34. 数值转换
  35. parseInt() 将变量转换为整数
  36. parseFloat() 将变量转换为小数
  37. isNaN() 函数通常用于检测 parseFloat() parseInt() 的结果,以判断它们表示的是否是合法的数字,是数字返回false,不是数字返回true
  38.  
  39. var n = '100.10';
  40. var nInt = parseInt(n);
  41. //nInt=100
  42. var nFloat = parseFloat(n);
  43. //nFloat=100.1
  44. alert(isNaN('100')); //false
  45. alert(isNaN('hello')); //true

自带函数

  1. /*检验数字整形*/
  2. /*num:接受检验的字符*/
  3. /*strAlert:错误提示*/
  4. /*numMin:数值最小范围(-1表示不限制最小值)*/
  5. /*numMax:数值最大范围(-1表示不限制最大值)*/
  6. function CheckNumInt(num, strAlert, numMin, numMax) {
  7. if ($.trim(num) == "") {
  8. $.Zebra_Dialog('<strong>' + strAlert + '不能为空 !</strong>');
  9. return false;
  10. }
  11. if (isNaN(num)) {
  12. $.Zebra_Dialog('<strong>' + strAlert + '需要输入数字类型 !</strong>');
  13. return false;
  14. } else {
  15. if (parseInt(numMin) != -1) {
  16. if (parseInt(num) < parseInt(numMin)) {
  17. $.Zebra_Dialog('<strong>' + strAlert + '的数值不能小于' + numMin + ' !</strong>');
  18. return false;
  19. }
  20. }
  21.  
  22. if (parseInt(numMax) != -1) {
  23. if (parseInt(num) > parseInt(numMax)) {
  24. $.Zebra_Dialog('<strong>' + strAlert + '的数值不能大于' + numMax + ' !</strong>');
  25. return false;
  26. }
  27. }
  28. return true;
  29. }
  30. };
  31.  
  32. /*检测是否是小数*/
  33. /*value:接受检验的字符*/
  34. /*strAlert:错误提示*/
  35. /*numlength:小数最长的位数*/
  36. function CheckNumDecimal(value, strAlert, numlength) {
  37. if ($.trim(value) == "") {
  38. $.Zebra_Dialog('<strong>' + strAlert + '不能为空 !</strong>');
  39. return false;
  40. }
  41. if (isNaN(value)) {
  42. $.Zebra_Dialog('<strong>' + strAlert + '需要输入小数类型 !</strong>');
  43. return false;
  44. }
  45.  
  46. if (value != null && value != '') {
  47. var decimalIndex = value.indexOf('.');
  48. if (decimalIndex == '-1') {
  49. return true;
  50. } else {
  51. var decimalPart = value.substring(decimalIndex + 1);
  52. if (decimalPart.length > parseInt(numlength)) {
  53. $.Zebra_Dialog('<strong>' + strAlert + '最多可以输入位' + numlength + '小数 !</strong>');
  54. return false;
  55. } else {
  56. return true;
  57. }
  58. }
  59. }
  60. return false;
  61. };
  62.  
  63. //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
  64. function accMul(arg1, arg2) {
  65. var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
  66. try { m += s1.split(".")[1].length } catch (e) { }
  67. try { m += s2.split(".")[1].length } catch (e) { }
  68. return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
  69. }
  70.  
  71. //除法函数,用来得到精确的除法结果
  72. //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
  73. //调用:accDiv(arg1,arg2)
  74. //返回值:arg1除以arg2的精确结果
  75. function accDiv(arg1, arg2) {
  76. var t1 = 0, t2 = 0, r1, r2;
  77. try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
  78. try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
  79. with (Math) {
  80. r1 = Number(arg1.toString().replace(".", ""));
  81. r2 = Number(arg2.toString().replace(".", ""));
  82. return (r1 / r2) * pow(10, t2 - t1);
  83. }
  84. }
  85.  
  86. //返回n位小数
  87. //x:原始小数
  88. //digit:要返回小数的位数
  89. function toDecimal(x, digit) {
  90. var f_x = parseFloat(x);
  91. var d = parseInt(digit);
  92. var dmul = Math.pow(10, d);
  93. if (isNaN(f_x)) {
  94. alert('您试图将字符串转换为数字,请检查!');
  95. return false;
  96. }
  97. if (isNaN(d)) {
  98. alert('您试图将小数位数转换为数字,请检查!');
  99. return false;
  100. }
  101. var f_x = Math.round(x * dmul) / dmul;
  102. var s_x = f_x.toString();
  103. var pos_decimal = s_x.indexOf('.');
  104. if (pos_decimal < 0) {
  105. pos_decimal = s_x.length;
  106. s_x += '.';
  107. }
  108. while (s_x.length <= pos_decimal + d) {
  109. s_x += '0';
  110. }
  111. return s_x;
  112. }

扩展函数

js事件

  1. a.窗口事件,只在bodyframeset元素中才有效
  2. onload 页面或图片加载完成时
  3. onunload 用户离开页面时
  4.  
  5. b.表单元素事件,在表单元素中才有效
  6. onchange 框内容改变时
  7. onsubmit 点击提交按钮时
  8. onreset 重新点击鼠标按键时
  9. onselect 文本被选择时
  10. onblur 元素失去焦点时
  11. onfocus 当元素获取焦点时
  12.  
  13. c.键盘事件,在base,bdo,br,frame,frameset,head,html,iframe,meta,param,script,style,title元素里都无效
  14. onkeydown 按下键盘按键时
  15. onkeypress 按下或按住键盘按键时
  16. onkeyup 放开键盘按键时
  17.  
  18. d.在base,bdo,br,frame,frameset,head,html,iframe,meta,param,script,style,title元素里都无效
  19. onclick 鼠标点击一个对象时
  20. ondblclick 鼠标双击一个对象时
  21. onmousedown 鼠标被按下时
  22. onmousemove 鼠标被移动时
  23. onmouseout 鼠标离开元素时
  24. onmouseover 鼠标经过元素时
  25. onmouseup 释放鼠标按键时
  26.  
  27. e.其他
  28. onresize 当窗口或框架被重新定义尺寸时
  29. onabort 图片下载被打断时
  30. onerror 当加载文档或图片时发生错误时

javascript 事件说明

自定义方法

  1. //获取页面url
  2. function getQueryString(name) {
  3. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  4. var r = window.location.search.substr(1).match(reg);
  5. if (r != null) return unescape(r[2]); return '';
  6. }
  7.  
  8. //生成新的GUID
  9. function newGuid() {
  10. var guid = "";
  11. for (var i = 1; i <= 32; i++) {
  12. var n = Math.floor(Math.random() *
  13.  
  14. 16.0).toString(16);
  15. guid += n;
  16. if ((i == 8) || (i == 12) || (i == 16) || (i
  17.  
  18. == 20))
  19. guid += "-";
  20. }
  21. return guid;
  22. }
  23.  
  24. //将数字转换为人民币大写形式
  25. function changeNumMoneyToChinese(money) {
  26. var cnNums = new Array("零", "壹", "贰", "叁", "肆
  27.  
  28. ", "伍", "陆", "柒", "捌", "玖"); //汉字的数字
  29. var cnIntRadice = new Array("", "拾", "佰", "仟");
  30.  
  31. //基本单位
  32. var cnIntUnits = new Array("", "万", "亿", "兆");
  33.  
  34. //对应整数部分扩展单位
  35. var cnDecUnits = new Array("角", "分", "毫",
  36.  
  37. "厘"); //对应小数部分单位
  38. var cnInteger = "整"; //整数金额时后面跟的字符
  39. var cnIntLast = "元"; //整型完以后的单位
  40. var maxNum = 999999999999999.9999; //最大处理的数
  41.  

  42. var IntegerNum; //金额整数部分
  43. var DecimalNum; //金额小数部分
  44. var ChineseStr = ""; //输出的中文金额字符串
  45. var parts; //分离金额后用的数组,预定义
  46. if (money == "") {
  47. return "";
  48. }
  49. money = parseFloat(money);
  50. if (money >= maxNum) {
  51. alert('超出最大处理数字');
  52. return "";
  53. }
  54. if (money == 0) {
  55. ChineseStr = cnNums[0] + cnIntLast +
  56.  
  57. cnInteger;
  58. return ChineseStr;
  59. }
  60. money = money.toString(); //转换为字符串
  61. if (money.indexOf(".") == -1) {
  62. IntegerNum = money;
  63. DecimalNum = '';
  64. } else {
  65. parts = money.split(".");
  66. IntegerNum = parts[0];
  67. DecimalNum = parts[1].substr(0, 4);
  68. }
  69. if (parseInt(IntegerNum, 10) > 0) { //获取整型部分
  70.  
  71. 转换
  72. var zeroCount = 0;
  73. var IntLen = IntegerNum.length;
  74. for (var i = 0; i < IntLen; i++) {
  75. var n = IntegerNum.substr(i, 1);
  76. var p = IntLen - i - 1;
  77. var q = p / 4;
  78. var m = p % 4;
  79. if (n == "0") {
  80. zeroCount++;
  81. } else {
  82. if (zeroCount > 0) {
  83. ChineseStr += cnNums[0];
  84. }
  85. zeroCount = 0; //归零
  86. ChineseStr += cnNums[parseInt(n)] +
  87.  
  88. cnIntRadice[m];
  89. }
  90. if (m == 0 && zeroCount < 4) {
  91. ChineseStr += cnIntUnits[q];
  92. }
  93. }
  94. ChineseStr += cnIntLast;
  95. //整型部分处理完毕
  96. }
  97. if (DecimalNum != '') { //小数部分
  98. var decLen = DecimalNum.length;
  99. for (var i = 0; i < decLen; i++) {
  100. var n = DecimalNum.substr(i, 1);
  101. if (n != '0') {
  102. ChineseStr += cnNums[Number(n)] +
  103.  
  104. cnDecUnits[i];
  105. }
  106. }
  107. }
  108. if (ChineseStr == '') {
  109. ChineseStr += cnNums[0] + cnIntLast +
  110.  
  111. cnInteger;
  112. } else if (DecimalNum == '') {
  113. ChineseStr += cnInteger;
  114. }
  115. return ChineseStr;
  116. }

js常用函数总结的更多相关文章

  1. ecshop里提出来的js常用函数

    目录 Utils.js jquery.listTable.js 使用例子: ecshop里提出来的js常用函数 Utils.js /* $Id : utils.js 5052 2007-02-03 1 ...

  2. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  3. js常用函数和常用技巧

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  4. 总结JS 常用函数

    希望本文总结的内容能给各位看官带来焕然一新的感觉.另外,如果你们有什么值得推荐的js技巧,欢迎在评论中补充,我可以收纳在本文中. PS:此文档会持续新增内容. Ajax请求 jquery ajax函数 ...

  5. js常用函数、书写可读性的js、js变量声明...

    1.Array类型函数 array.concat(item...) 函数功能:关联数组,实现数组相加功能,但并不影响原先数组,concat返回新数组. array.join(separator) 函数 ...

  6. js常用函数整理

    类型转换:parseInt\parseFloat\toString 类型判断:typeof;eg:if(typeof(var)!="undefined")\isNaN 字符处理函数 ...

  7. js常用函数汇总(不定期更新)

    1.图片按比例压缩 function setImgSize(){ var outbox_w=imgbox.width(), outbox_h=imgbox.height(); imgbox.find( ...

  8. JavaScript学习总结(9)——JS常用函数(一)

    本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助. 1. 字符串长度截取 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  9. JavaScript的使用以及JS常用函数(JS 遍历数组和集合)

    JavaScript入门 学习总结 1. 什么是 JavaScript 2. JavaScript 的特点 3. JS的使用 编写位置 基本语法 变量 打印变量 数据类型 innerHTML和inne ...

  10. Js 常用函数

    1. 算数函数(Math) 1)Js小数取整 常用于:分页算法 js 小数取整的函 .丢弃小数部分,保留整数部分 js:parseInt(/) .向上取整,有小数就整数部分加1 js: Math.ce ...

随机推荐

  1. HTML5 canvas 圆盘抽奖

    使用html5 canvas 绘制的圆盘抽奖程序 效果图: 贴上全部代码:  1 <!DOCTYPE html> <html> <head> <meta ch ...

  2. Flume使用(案例分析)

    Flume官方文档 Usage: bin/flume-ng <command> [options]... commands: help display this help text age ...

  3. Javascript Step by Step - 02

    DOM 操作 DOM是面向HTML和XML文档的API,为文档提供了结构化表示.在DOM中一切都是节点Node,文档就是由许多的Node组成的.文档里的每个节点都有属性 nodeName.nodeVa ...

  4. P1182 数列分段Section II

    P1182 数列分段Section II 题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 ...

  5. TCP重组问题

    今天问题: vqmon 测试一pcap抓包文件18.pcap.发现实际输出的视频分片信息和抓包不符合. ===>pts : 00:00:33 Too much data in TCP recei ...

  6. Java 注解(Annoation)学习笔记

    1 Junit中的@Test为例: 1.1 用注解(@Test)前 private boolean isTestMethod(Method m) { return m.getParameterType ...

  7. 关于mac ox node安装报 npm ERR! registry error parsing json

    想安装grunt 遇到2个问题 让npm重新设置一下config: npm config set registry http://registry.cnpmjs.org 然后还报 npm ERR! E ...

  8. Python 3基础教程12-常见的错误

    本文来介绍几种常见的错误,任何人在刚开始接触一个新的语言,即使照着代码抄写,也可能会犯错误,这里我们就介绍几种常见的错误,看看你是否遇到过. 1. NameError: name 'xxx' is n ...

  9. obj = object(),所创建的obj实例到底是个啥?

    In[1]: dir(obj) Out[1]:['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '_ ...

  10. NTP学习

    NTP(The Network Time Protocol),本以为是一个非常简单的协议,但是看了百度百科和ntp.org的介绍后,我发现我错了. 这个看似简单的协议存在一个很关键也是非常重要的问题- ...