前端常用程式碼段
1、獲取裝置型別
var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { trident: u.indexOf('Trident') > -1, //IE核心 presto: u.indexOf('Presto') > -1, //opera核心 webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌核心 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐核心 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端 android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android終端 iPhone: u.indexOf('iPhone') > -1 , //是否為iPhone或者QQHD瀏覽器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web應該程式,沒有頭部與底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) qq: u.match(/\sQQ/i) == " qq", //是否QQ }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() };
2、獲取URL引數
function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return r[2]; return null; }
3、格式化時間
function dataTime(str,time){ var date=new Date(time); var o = { "o+" : date.getMonth()+1, //月 "d+" : date.getDate(), //日 "h+" : date.getHours(), //時 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds(), //秒 }; if(/(y+)/.test(str)) str=str.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o) if(new RegExp("("+ k +")").test(str)) str = str.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return str; }
4、複製到貼上板
function copyToClipboard(text){ if(text.indexOf('-') !== -1) { var arr = text.split('-'); text = arr[0] + arr[1]; } var textArea = document.createElement("textarea"); textArea.style.position = 'fixed'; textArea.style.top = '0'; textArea.style.left = '0'; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = '0'; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; // textArea.innerHTML=text; textArea.value=text; document.body.appendChild(textArea); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? '成功複製到剪貼簿' : '該瀏覽器不支援點選複製到剪貼簿'; humane.log(msg, { timeout: 3000, clickToClose: true, addnCls: 'humane' }); } catch (err) { humane.log('該瀏覽器不支援點選複製到剪貼簿', { timeout: 3000, clickToClose: true, addnCls: 'humane' }); } document.body.removeChild(textArea); }
5、去除字串首位空格function trimStr(str){ if(!str) return ""; return str.replace(/(^\s*)|(\s*$)/g,""); }
6、獲取cookie
function getCookie(name){ var cookie = document.cookie; //獲取cookie字串 var cookie = cookie.split("; "); //分割 //遍歷匹配 for ( var i = 0; i < cookie.length; i++) { var arr = cookie[i].split("="); if (arr[0] == name){ return arr[1]; } } return ""; }
7、過濾html標籤
function removeHTMLTag(str) { str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白 str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多餘空行 str=str.replace(/ /ig,'');//去掉 return str; },
8、ajax請求
function ajax(options){ var xhr = null; var params = formsParams(options.data); //建立物件 if(window.XMLHttpRequest){ xhr = new XMLHttpRequest() } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } // 連線 if(options.type == "GET"){ xhr.open(options.type,options.url + "?"+ params,options.async); xhr.send(null) } else if(options.type == "POST"){ xhr.open(options.type,options.url,options.async); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(params); } xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ options.success(xhr.responseText); } } function formsParams(data){ var arr = []; for(var prop in data){ arr.push(prop + "=" + data[prop]); } return arr.join("&"); } } ajax({ url : "a.php", // url---->地址 type : "POST", // type ---> 請求方式 async : true, // async----> 同步:false,非同步:true data : { //傳入資訊 name : "張三", age : 18 }, success : function(data){ //返回接受資訊 console.log(data); } })
9、檢測瀏覽器是否支援canvas
function isSupportCanvas() {
return document.createElement('canvas').getContext ? true : false;
} // 測試,
開啟谷歌瀏覽器控制檯檢視結果 console.log(isSupportCanvas());
10、檢測是否是微信瀏覽器
function isWeiXinClient() {
var ua = navigator.userAgent.toLowerCase();
return !!(ua.match(/MicroMessenger/i)=="micromessenger" ? 1 : 0);
} // 測試 console.log(isWeiXinClient());
11、傳送驗證碼倒計時程式碼
<!-- dom -->
<input id="send" type="button" value="傳送驗證碼">
// 原生js版本
var times = 60, // 臨時設為60秒
timer = null;
document.getElementById('send').onclick = function () {
// 計時開始
timer = setInterval(function () {
times--;
if (times <= 0) {
send.value = '傳送驗證碼';
clearInterval(timer);
send.disabled = false;
times = 60;
} else {
send.value = times + '秒後重試';
send.disabled = true;
}
}, 1000);
}
// jQuery版本
var times = 60,
timer = null;
$('#send').on('click', function () {
var $this = $(this);
// 計時開始
timer = setInterval(function () {
times--;
if (times <= 0) {
$this.val('傳送驗證碼');
clearInterval(timer);
$this.attr('disabled', false);
times = 60;
} else {
$this.val(times + '秒後重試');
$this.attr('disabled', true);
}
}, 1000);
});
11、判斷是否是移動端及瀏覽器核心
var browser = {
versions: function() {
var u = navigator.userAgent;
return {
trident: u.indexOf('Trident') > -1, //IE核心
presto: u.indexOf('Presto') > -1, //opera核心
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌核心
gecko: u.indexOf('Firefox') > -1, //火狐核心Gecko
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android
iPhone: u.indexOf('iPhone') > -1 , //iPhone
iPad: u.indexOf('iPad') > -1, //iPad
webApp: u.indexOf('Safari') > -1 //Safari
};
}
}
if (browser.versions.mobile() || browser.versions.ios() || browser.versions.android() || browser.versions.iPhone() || browser.versions.iPad()) {
alert('移動端');
}