分类: 代码分享
-
关于苹果手机微信页面滑动卡顿问题的解决方法
问题:页面过长 有滚动条 上下滑动页面不跟手 感觉卡顿 部分手机严重卡顿
解决方法:在有滚动条的标签上添加:-webkit-overflow-scrolling:touch -
Windows命令行查看文件的MD5、SHA1、SHA256
certutil -hashfile D:\1.exe MD5 certutil -hashfile D:\1.exe SHA1 certutil -hashfile D:\1.exe SHA256
-
mousewheel滚轮事件
原生
//Chrome 及 IE document.body.onmousewheel = function (event) { event = event || window.event; var direction = event.wheelDelta && (event.wheelDelta > 0 ? "mouseup" : "mousedown"); console.log(direction); };// Firefox document.body.addEventListener("DOMMouseScroll", function(event) { var direction= event.detail && (event.detail > 0 ? "mousedown" : "mouseup"); console.log(direction); });jQuery
$(document).on("mousewheel DOMMouseScroll", function (e) { var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) || (e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1)); if (delta > 0) { // 向上滚 console.log("wheelup"); } else if (delta < 0) { // 向下滚 console.log("wheeldown"); } }); -
CSS小箭头
active:after { content: ""; border-right: 6px solid #f0f3f4; border-top: 6px solid transparent; border-bottom: 8px solid transparent; position: absolute; top: 50%; margin-top: -7px; right: 0; } -
排序数组
data.sort(function(x, y) { return x.play_time > y.play_time ? -1 : 1; }); -
常用JS函数—html转义符
去掉html标签
function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签 }普通字符转换成转意符
function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':'>','&':'&','"':'"'}[c];}); }转成空格
function nbsp2Space(str) { var arrEntities = {'nbsp' : ' '}; return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]}) } function space2Nbsp(str) { return str.replace(/\s/ig, ' '); }转意符换成普通字符
function escape2Html(str) { var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'}; return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];}); }回车转为br标签
function return2Br(str) { return str.replace(/\r?\n/g,"
"); }去除开头结尾换行,并将连续3次以上换行转换成2次换行
function trimBr(str) { str=str.replace(/((\s| )*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行 str=str.replace(/^((\s| )*\r?\n)+/g,'');//清除开头换行 str=str.replace(/((\s| )*\r?\n)+$/g,'');//清除结尾换行 return str; }将多个连续空格合并成一个空格
function mergeSpace(str) { str=str.replace(/(\s| )+/g,' '); return str; } -
JavaScript 大杂烩
避免污染全局变量
var foo = 12; console.log(foo);
上面的代码等同于
window.foo = 12;
如下代码会覆盖系统默认print函数,会让网页无法打印:
function print () { // do something } print();我们只需要简单的做一下变更,就能避免污染全局变量:
(function () { var foo = 12; console.log(window.foo); // → undefined console.log(foo); // → 12 })();如果更进一步,可以将window等全局变量当作参数传到function:
(function (global, doc) { global.setTimeout(function () { doc.body.innerHTML = "Hello!"; }, 1000); })(window, document);值类型转换
// 任何值转为Number var foo = "12"; var myNumber = +foo; // → 12 var negativeFoo = -foo; // → -12 // 对象转为数组 var args = { 0: "foo", 1: "bar", length: 2 }; Array.prototype.slice.call(args) // → [ 'foo', 'bar' ] // 转为布尔值 /// 正正得正 var t = 1; var f = 0; !!t // → true !!f // → false /// 正负得负 !t // → false !f // → true // 转为字符串 var foo = 12; "" + foo // → "12" foo = { hello: "world" }; JSON.stringify(foo); // → '{ "hello":"world" }' JSON.stringify(foo, null, 4); // 格式化 // → // '{ // "hello": "world" // }' -
常用的正则表达式
//正整数 /^[0-9]*[1-9][0-9]*$/; //负整数 /^-[0-9]*[1-9][0-9]*$/; //正浮点数 /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/; //负浮点数 /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //浮点数 /^(-?\d+)(\.\d+)?$/; //email地址 /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; //url地址 /^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/; 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ //年/月/日(年-月-日、年.月.日) /^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/; //匹配中文字符 /[\u4e00-\u9fa5]/; //匹配帐号是否合法(字母开头,允许5-10字节,允许字母数字下划线) /^[a-zA-Z][a-zA-Z0-9_]{4,9}$/; //匹配空白行的正则表达式 /\n\s*\r/; //匹配中国邮政编码 /[1-9]\d{5}(?!\d)/; //匹配身份证 /\d{15}|\d{18}/; //匹配国内电话号码 /(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/; //匹配IP地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/; //匹配首尾空白字符的正则表达式 /^\s*|\s*$/; //匹配HTML标记的正则表达式 < (\S*?)[^>]*>.*?|< .*? />; //sql 语句 ^(select|drop|delete|create|update|insert).*$ //提取信息中的网络链接 (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? //提取信息中的邮件地址 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //提取信息中的图片链接 (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? //提取信息中的 IP 地址 (\d+)\.(\d+)\.(\d+)\.(\d+) //取信息中的中国手机号码 (86)*0*13\d{9} //提取信息中的中国邮政编码 [1-9]{1}(\d+){5} //提取信息中的浮点数(即小数) (-?\d*)\.?\d+ //提取信息中的任何数字 (-?\d*)(\.\d+)? //电话区号 ^0\d{2,3}$ //腾讯 QQ 号 ^[1-9]*[1-9][0-9]*$ //帐号(字母开头,允许 5-16 字节,允许字母数字下划线) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ //中文、英文、数字及下划线 ^[\u4e00-\u9fa5_a-zA-Z0-9]+$