本系列文章旨在记录一些实用的javascript技巧,既可以作为一个知识的积累,又可以作为闲暇时打发时间写写代码的记录。同时也方便日后翻阅~
1. 将字符串转换成URL编码
1 2 3 |
var myString = "hello all"; var code = encodeURI(myString); //结果: "hello%20all" var str = decodeURI(code); //结果: "hello all" |
相应的还有: encodeURIComponent() decodeURIComponent()
2. 将字符转换成Unicode编码
1 2 3 |
var myString = "hello"; var code = myString.charCodeAt(3); //返回"l"的Unicode编码(整型) var char = String.fromCharCode(66); //返回Unicode为66的字符 |
3. 光标停在文字的后面,文本框获得焦点时调用
1 2 3 4 5 6 7 |
function focusLast(){ var e = event.srcElement; var r =e.createTextRange(); r.moveStart('character',e.value.length); r.collapse(true); r.select(); } |
4. 检验URL链接是否有效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function getUrlState(URL){ var xmlhttp = new ActiveXObject("microsoft.xmlhttp"); xmlhttp.Open("GET",URL, false); try{ xmlhttp.Send(); }catch(e){ }finally{ var result = xmlhttp.responseText; if(result){ if(xmlhttp.Status==200){ return(true); }else{ return(false); } }else{ return(false); } } } |
5. 格式化CSS样式代码
1 2 3 4 5 6 7 8 9 |
function formatCss(s){//格式化代码 s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1"); s = s.replace(/;\s*;/g, ";"); //清除连续分号 s = s.replace(/\,[\s\.\#\d]*{/g, "{"); s = s.replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2"); s = s.replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2"); s = s.replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2"); return s; } |
6. 压缩CSS样式代码
1 2 3 4 5 6 7 8 |
function yasuoCss (s) {//压缩代码 s = s.replace(/\/\*(.|\n)*?\*\//g, ""); //删除注释 s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1"); s = s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容错处理 s = s.replace(/;\s*;/g, ";"); //清除连续分号 s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白 return (s == null) ? "" : s[1]; } |
7. 获取当前路径
1 2 3 4 5 6 7 |
var currentPageUrl = ""; if (typeof this.href === "undefined") { currentPageUrl = document.location.toString().toLowerCase(); } else { currentPageUrl = this.href.toString().toLowerCase(); } |
8. IP转成整型
1 2 3 4 5 6 7 |
function _ip2int(ip){ var num = 0; ip = ip.split("."); num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]); num = num >>> 0; return num; } |
9. 整型解析为IP地址
1 2 3 4 5 6 7 8 9 10 |
function _int2iP(num){ var str; var tt = new Array(); tt[0] = (num >>> 24) >>> 0; tt[1] = ((num << 8) >>> 24) >>> 0; tt[2] = (num << 16) >>> 24; tt[3] = (num << 24) >>> 24; str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]); return str; } |
10. 实现checkbox全选与全不选
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function checkAll() { var selectall = document.getElementById("selectall"); var allbox = document.getElementsByName("allbox"); if (selectall.checked) { for (var i = 0; i < allbox.length; i++) { allbox[i].checked = true; } } else { for (var i = 0; i < allbox.length; i++) { allbox[i].checked = false; } } } |
查看更多本系列文章:JS手记
必须得顶呀!