本系列文章旨在记录一些实用的javascript技巧,既可以作为一个知识的积累,又可以作为闲暇时打发时间写写代码的记录。同时也方便日后翻阅~
1. 封装cookie组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var Cookie = { // 读取 read : function(name){ var cookieStr = "; "+document.cookie+"; "; var index = cookieStr.indexOf("; "+name+"="); if (index!=-1){ var s = cookieStr.substring(index+name.length+3,cookieStr.length); return unescape(s.substring(0, s.indexOf("; "))); }else{ return null; } }, // 设置 set : function(name,value,expires){ var expDays = expires*24*60*60*1000; var expDate = new Date(); expDate.setTime(expDate.getTime()+expDays); var expString = expires ? "expires="+expDate.toGMTString() : ""; var pathString = ";path=/"; document.cookie = name + "=" + escape(value) + expString + pathString; }, // 删除 del : function(name){ var exp = new Date(new Date().getTime()-1); var s=this.read(name); if(s!=null) { document.cookie= name + "="+s+"expires="+exp.toGMTString()+";path=/" } } }; // demo: Cookie.set("xuanfengge", "www.xuanfengge.com", 7); alert(Cookie.read("xuanfengge")); Cookie.del("xuanfengge"); |
2. 字符串比较
1 2 3 4 5 |
var aString = "Hello!"; var bString = new String("Hello!"); if( aString == "Hello!" ){ } //结果: true if( aString == bString ){ } //结果: true if( aString === bString ){ } //结果: false (两个对不同,尽管它们的值相同) |
3. 检索字符串
1 2 3 |
var myString = "hello everybody."; // 如果检索不到会返回-1,检索到的话返回在该串中的起始位置 if( myString.indexOf("every") > -1 ){ } //结果: true |
4. 查找替换字符串
1 2 |
var myString = "I is your father."; var result = myString.replace("is","am"); //结果: "I am your father." |
5. 截取字符串
1 2 3 4 5 6 7 8 9 10 11 12 |
//截取第 6 位开始的字符 var myString = "Every good boy does fine."; var section = myString.substring(6); //结果: "good boy does fine." //截取第 0 位开始至第 10 位为止的字符 var myString = "Every good boy does fine."; var section = myString.substring(0,10); //结果: "Every good" //截取从第 11 位到倒数第 6 位为止的字符 var myString = "Every good boy does fine."; var section = myString.slice(11,-6); //结果: "boy does" //从第 6 位开始截取长度为 4 的字符 var myString = "Every good boy does fine."; var section = myString.substr(6,4); //结果: "good" |
6. 字数统计(中英文)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function fucCheckLength(strTemp){ var i,sum; sum=0; for(i=0;i<strTemp.length;i++){ if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)){ sum=sum+1; }else{ sum=sum+2; } } return sum; } // demo: fucCheckLength("qwe"); //3 fucCheckLength("轩枫"); //4 |
7. 字符串是否合法日期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//合法日期:yyyy-mm-dd,分隔符可以为-/. String.prototype.isDate = function() { var year,month,date,day; var reg = /^([12]\d{3})([-\/\.])([01]?\d)\2([0-3]?\d)$/; if (!reg.test(this)) return false; year = RegExp.$1.parseInt(); month = RegExp.$3.parseInt() - 1; date = RegExp.$4.parseInt(); day = new Date(year,month,date); return ((date == day.getDate()) && (month == day.getMonth())); } // demo: "1999-12-20".isDate() // 合法日期:yyyy-mm-dd,分隔符可以为-/ |
8. 返回两个日期之间的时间间隔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function dateDiff(date1,date2) { var year,month,date,day1,day2; var reg = /^(\d{4})([-\/\.])(\d{2})\2(\d{2})$/; reg.test(date1); year = RegExp.$1.parseInt(); month = RegExp.$3.parseInt() - 1; date = RegExp.$4.parseInt(); day1 = new Date(year,month,date); reg.test(date2); year = RegExp.$1.parseInt(); month = RegExp.$3.parseInt() - 1; date = RegExp.$4.parseInt(); day2 = new Date(year,month,date); return (day1.getTime() - day2.getTime()) / 86400000; } // demo: // 用以前,先用isDate()判断一下是否合法日期 // 注意:这个函数的reg和isDate()里的reg小you不同 // 以天为单位(date1-date2=?),可以用来比较2个日期大小 |
9. 判断是否为空对象
1 2 3 4 5 6 7 8 9 10 11 12 |
function isEmpty(obj){ for(var key in obj){ return false; } return true; } // demo: isEmpty({}); //true isEmpty({"key":"value"}); //false // jq版本 $.isEmptyObject({}); //true $.isEmptyObject({"key", "value"}); //false |
10. 获取对象的属性个数
1 2 3 4 5 6 7 8 9 10 |
Object.prototype.length = function() { var count = 0; for(var i in this){ count ++; } return count; }; // demo: var a = {a:1, b:2, c:3, d:4}; alert(a.length()); // 5 |
查看更多本系列文章:JS手记
好贴,绝对要支持下!!~~
说得也是
不错的
我给背景音乐吓到了
javascript
支持技术贴子!
江南来过留个脚印
谢谢分享,现在正在努力学习这一块
第一次来你博客哦,文章不错,赞一个。求认识,求回访啊,www.aiyw.net
看了好文章江南留言是美德 三亚婚纱摄影 http://www.timi520.com 切看切珍惜
很不错 实用
感激
很实用
代码还可以优化啊,统计字符 这样会不会效率高些:return String(str).replace(/[^x00-xff]/g,’aa’).length;
很实用,学习了
有用,很多东西确实需要整理出来,用起来才会便捷快速
是的,已整理更多但没发布,敬请期待