JavaScript
4. String 字符串操作
/**
* 去除空格
* @param? {str}
* @param? {type}
*? ? ? type:? 1-所有空格? 2-前后空格? 3-前空格 4-后空格
* @return {String}
*/
trim (str, type) {
? ? type = type || 1
? ? switch (type) {
? ? ? ? case 1:
? ? ? ? ? ? return str.replace(/\s+/g, "");
? ? ? ? case 2:
? ? ? ? ? ? return str.replace(/(^\s*)|(\s*$)/g, "");
? ? ? ? case 3:
? ? ? ? ? ? return str.replace(/(^\s*)/g, "");
? ? ? ? case 4:
? ? ? ? ? ? return str.replace(/(\s*$)/g, "");
? ? ? ? default:
? ? ? ? ? ? return str;
? ? }
}
/**
* @param? {str}
* @param? {type}
*? ? ? type:? 1:首字母大寫? 2:首頁母小寫? 3:大小寫轉(zhuǎn)換? 4:全部大寫? 5:全部小寫
* @return {String}
*/
changeCase (str, type) {
? ? type = type || 4
? ? switch (type) {
? ? ? ? case 1:
? ? ? ? ? ? return str.replace(/\b\w+\b/g, function (word) {
? ? ? ? ? ? ? ? return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase();
? ? ? ? ? ? });
? ? ? ? case 2:
? ? ? ? ? ? return str.replace(/\b\w+\b/g, function (word) {
? ? ? ? ? ? ? ? return word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase();
? ? ? ? ? ? });
? ? ? ? case 3:
? ? ? ? ? ? return str.split('').map( function(word){
? ? ? ? ? ? ? ? if (/[a-z]/.test(word)) {
? ? ? ? ? ? ? ? ? ? return word.toUpperCase();
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? return word.toLowerCase()
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }).join('')
? ? ? ? case 4:
? ? ? ? ? ? return str.toUpperCase();
? ? ? ? case 5:
? ? ? ? ? ? return str.toLowerCase();
? ? ? ? default:
? ? ? ? ? ? return str;
? ? }
}
/*
? ? 檢測密碼強(qiáng)度
*/
checkPwd (str) {
? ? var Lv = 0;
? ? if (str.length < 6) {
? ? ? ? return Lv
? ? }
? ? if (/[0-9]/.test(str)) {
? ? ? ? Lv++
? ? }
? ? if (/[a-z]/.test(str)) {
? ? ? ? Lv++
? ? }
? ? if (/[A-Z]/.test(str)) {
? ? ? ? Lv++
? ? }
? ? if (/[\.|-|_]/.test(str)) {
? ? ? ? Lv++
? ? }
? ? return Lv;
}
/*過濾html代碼(把<>轉(zhuǎn)換)*/
filterTag (str) {
? ? str = str.replace(/&/ig, "&");
? ? str = str.replace(/</ig, "<");
? ? str = str.replace(/>/ig, ">");
? ? str = str.replace(" ", " ");
? ? return str;
}
5. Number
/*隨機(jī)數(shù)范圍*/
random (min, max) {
? ? if (arguments.length === 2) {
? ? ? ? return Math.floor(min + Math.random() * ( (max+1) - min ))
? ? }else{
? ? ? ? return null;
? ? }
}
/*將阿拉伯?dāng)?shù)字翻譯成中文的大寫數(shù)字*/
numberToChinese (num) {
? ? var AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十");
? ? var BB = new Array("", "十", "百", "仟", "萬", "億", "點", "");
? ? var a = ("" + num).replace(/(^0*)/g, "").split("."),
? ? ? ? k = 0,
? ? ? ? re = "";
? ? for(var i = a[0].length - 1; i >= 0; i--) {
? ? ? ? switch(k) {
? ? ? ? ? ? case 0:
? ? ? ? ? ? ? ? re = BB[7] + re;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? if(!new RegExp("0{4}//d{" + (a[0].length - i - 1) + "}$")
? ? ? ? ? ? ? ? ? ? .test(a[0]))
? ? ? ? ? ? ? ? ? ? re = BB[4] + re;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 8:
? ? ? ? ? ? ? ? re = BB[5] + re;
? ? ? ? ? ? ? ? BB[7] = BB[5];
? ? ? ? ? ? ? ? k = 0;
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? if(k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0)
? ? ? ? ? ? re = AA[0] + re;
? ? ? ? if(a[0].charAt(i) != 0)
? ? ? ? ? ? re = AA[a[0].charAt(i)] + BB[k % 4] + re;
? ? ? ? k++;
? ? }
? ? if(a.length > 1) // 加上小數(shù)部分(如果有小數(shù)部分)
? ? {
? ? ? ? re += BB[6];
? ? ? ? for(var i = 0; i < a[1].length; i++)
? ? ? ? ? ? re += AA[a[1].charAt(i)];
? ? }
? ? if(re == '一十')
? ? ? ? re = "十";
? ? if(re.match(/^一/) && re.length == 3)
? ? ? ? re = re.replace("一", "");
? ? return re;
}
/*將數(shù)字轉(zhuǎn)換為大寫金額*/
changeToChinese (Num) {
? ? ? ? //判斷如果傳遞進(jìn)來的不是字符的話轉(zhuǎn)換為字符
? ? ? ? if(typeof Num == "number") {
? ? ? ? ? ? Num = new String(Num);
? ? ? ? };
? ? ? ? Num = Num.replace(/,/g, "") //替換tomoney()中的“,”
? ? ? ? Num = Num.replace(/ /g, "") //替換tomoney()中的空格
? ? ? ? Num = Num.replace(/¥/g, "") //替換掉可能出現(xiàn)的¥字符
? ? ? ? if(isNaN(Num)) { //驗證輸入的字符是否為數(shù)字
? ? ? ? ? ? //alert("請檢查小寫金額是否正確");
? ? ? ? ? ? return "";
? ? ? ? };
? ? ? ? //字符處理完畢后開始轉(zhuǎn)換,采用前后兩部分分別轉(zhuǎn)換
? ? ? ? var part = String(Num).split(".");
? ? ? ? var newchar = "";
? ? ? ? //小數(shù)點前進(jìn)行轉(zhuǎn)化
? ? ? ? for(var i = part[0].length - 1; i >= 0; i--) {
? ? ? ? ? ? if(part[0].length > 10) {
? ? ? ? ? ? ? ? return "";
? ? ? ? ? ? ? ? //若數(shù)量超過拾億單位,提示
? ? ? ? ? ? }
? ? ? ? ? ? var tmpnewchar = ""
? ? ? ? ? ? var perchar = part[0].charAt(i);
? ? ? ? ? ? switch(perchar) {
? ? ? ? ? ? ? ? case "0":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "零" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "1":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "壹" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "2":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "貳" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "3":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "叁" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "4":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "肆" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "5":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "伍" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "6":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "陸" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "7":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "柒" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "8":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "捌" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "9":
? ? ? ? ? ? ? ? ? ? tmpnewchar = "玖" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? switch(part[0].length - i - 1) {
? ? ? ? ? ? ? ? case 0:
? ? ? ? ? ? ? ? ? ? tmpnewchar = tmpnewchar + "元";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "拾";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "佰";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "仟";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? ? ? tmpnewchar = tmpnewchar + "萬";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 5:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "拾";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 6:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "佰";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 7:
? ? ? ? ? ? ? ? ? ? if(perchar != 0) tmpnewchar = tmpnewchar + "仟";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 8:
? ? ? ? ? ? ? ? ? ? tmpnewchar = tmpnewchar + "億";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 9:
? ? ? ? ? ? ? ? ? ? tmpnewchar = tmpnewchar + "拾";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? var newchar = tmpnewchar + newchar;
? ? ? ? }
? ? ? ? //小數(shù)點之后進(jìn)行轉(zhuǎn)化
? ? ? ? if(Num.indexOf(".") != -1) {
? ? ? ? ? ? if(part[1].length > 2) {
? ? ? ? ? ? ? ? // alert("小數(shù)點之后只能保留兩位,系統(tǒng)將自動截斷");
? ? ? ? ? ? ? ? part[1] = part[1].substr(0, 2)
? ? ? ? ? ? }
? ? ? ? ? ? for(i = 0; i < part[1].length; i++) {
? ? ? ? ? ? ? ? tmpnewchar = ""
? ? ? ? ? ? ? ? perchar = part[1].charAt(i)
? ? ? ? ? ? ? ? switch(perchar) {
? ? ? ? ? ? ? ? ? ? case "0":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "零" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "1":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "壹" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "2":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "貳" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "3":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "叁" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "4":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "肆" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "5":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "伍" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "6":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "陸" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "7":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "柒" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "8":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "捌" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "9":
? ? ? ? ? ? ? ? ? ? ? ? tmpnewchar = "玖" + tmpnewchar;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(i == 0) tmpnewchar = tmpnewchar + "角";
? ? ? ? ? ? ? ? if(i == 1) tmpnewchar = tmpnewchar + "分";
? ? ? ? ? ? ? ? newchar = newchar + tmpnewchar;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //替換所有無用漢字
? ? ? ? while(newchar.search("零零") != -1)
? ? ? ? ? ? newchar = newchar.replace("零零", "零");
? ? ? ? newchar = newchar.replace("零億", "億");
? ? ? ? newchar = newchar.replace("億萬", "億");
? ? ? ? newchar = newchar.replace("零萬", "萬");
? ? ? ? newchar = newchar.replace("零元", "元");
? ? ? ? newchar = newchar.replace("零角", "");
? ? ? ? newchar = newchar.replace("零分", "");
? ? ? ? if(newchar.charAt(newchar.length - 1) == "元") {
? ? ? ? ? ? newchar = newchar + "整"
? ? ? ? }
? ? ? ? return newchar;
? ? }
6. Http
/**
* @param? {setting}
*/
ajax(setting){
? ? //設(shè)置參數(shù)的初始值
? ? var opts={
? ? ? ? method: (setting.method || "GET").toUpperCase(), //請求方式
? ? ? ? url: setting.url || "", // 請求地址
? ? ? ? async: setting.async || true, // 是否異步
? ? ? ? dataType: setting.dataType || "json", // 解析方式
? ? ? ? data: setting.data || "", // 參數(shù)
? ? ? ? success: setting.success || function(){}, // 請求成功回調(diào)
? ? ? ? error: setting.error || function(){} // 請求失敗回調(diào)
? ? }
? ? // 參數(shù)格式化
? ? function params_format (obj) {
? ? ? ? var str = ''
? ? ? ? for (var i in obj) {
? ? ? ? ? ? str += i + '=' + obj[i] + '&'
? ? ? ? }
? ? ? ? return str.split('').slice(0, -1).join('')
? ? }
? ? // 創(chuàng)建ajax對象
? ? var xhr=new XMLHttpRequest();
? ? // 連接服務(wù)器open(方法GET/POST,請求地址, 異步傳輸)
? ? if(opts.method == 'GET'){
? ? ? ? xhr.open(opts.method, opts.url + "?" + params_format(opts.data), opts.async);
? ? ? ? xhr.send();
? ? }else{
? ? ? ? xhr.open(opts.method, opts.url, opts.async);
? ? ? ? xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
? ? ? ? xhr.send(opts.data);
? ? }
? ? /*
? ? ** 每當(dāng)readyState改變時蔚鸥,就會觸發(fā)onreadystatechange事件
? ? ** readyState屬性存儲有XMLHttpRequest的狀態(tài)信息
? ? ** 0 :請求未初始化
? ? ** 1 :服務(wù)器連接已建立
? ? ** 2 :請求已接受
? ? ** 3 : 請求處理中
? ? ** 4 :請求已完成,且相應(yīng)就緒
? ? */
? ? xhr.onreadystatechange = function() {
? ? ? ? if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 304)) {
? ? ? ? ? ? switch(opts.dataType){
? ? ? ? ? ? ? ? case "json":
? ? ? ? ? ? ? ? ? ? var json = JSON.parse(xhr.responseText);
? ? ? ? ? ? ? ? ? ? opts.success(json);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "xml":
? ? ? ? ? ? ? ? ? ? opts.success(xhr.responseXML);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? opts.success(xhr.responseText);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? xhr.onerror = function(err) {
? ? ? ? opts.error(err);
? ? }
}
/**
* @param? {url}
* @param? {setting}
* @return {Promise}
*/
fetch(url, setting) {
? ? //設(shè)置參數(shù)的初始值
? ? let opts={
? ? ? ? method: (setting.method || 'GET').toUpperCase(), //請求方式
? ? ? ? headers : setting.headers? || {}, // 請求頭設(shè)置
? ? ? ? credentials : setting.credentials? || true, // 設(shè)置cookie是否一起發(fā)送
? ? ? ? body: setting.body || {},
? ? ? ? mode : setting.mode? || 'no-cors', // 可以設(shè)置 cors, no-cors, same-origin
? ? ? ? redirect : setting.redirect? || 'follow', // follow, error, manual
? ? ? ? cache : setting.cache? || 'default' // 設(shè)置 cache 模式 (default, reload, no-cache)
? ? }
? ? let dataType = setting.dataType || "json", // 解析方式?
? ? ? ? data = setting.data || "" // 參數(shù)
? ? // 參數(shù)格式化
? ? function params_format (obj) {
? ? ? ? var str = ''
? ? ? ? for (var i in obj) {
? ? ? ? ? ? str += `${i}=${obj[i]}&`
? ? ? ? }
? ? ? ? return str.split('').slice(0, -1).join('')
? ? }
? ? if (opts.method === 'GET') {
? ? ? ? url = url + (data?`?${params_format(data)}`:'')
? ? }else{
? ? ? ? setting.body = data || {}
? ? }
? ? return new Promise( (resolve, reject) => {
? ? ? ? fetch(url, opts).then( async res => {
? ? ? ? ? ? let data = dataType === 'text' ? await res.text() :
? ? ? ? ? ? ? ? dataType === 'blob' ? await res.blob() : await res.json()
? ? ? ? ? ? resolve(data)
? ? ? ? }).catch( e => {
? ? ? ? ? ? reject(e)
? ? ? ? })
? ? })
}
7. DOM
$ (selector){
? ? var type = selector.substring(0, 1);
? ? if (type === '#') {
? ? ? ? if (document.querySelecotor) return document.querySelector(selector)
? ? ? ? ? ? return document.getElementById(selector.substring(1))
? ? }else if (type === '.') {
? ? ? ? if (document.querySelecotorAll) return document.querySelectorAll(selector)
? ? ? ? ? ? return document.getElementsByClassName(selector.substring(1))
? ? }else{
? ? ? ? return document['querySelectorAll' ? 'querySelectorAll':'getElementsByTagName'](selector)
? ? }
}
/*檢測類名*/
hasClass (ele, name) {
? ? return ele.className.match(new RegExp('(\\s|^)' + name + '(\\s|$)'));
}
/*添加類名*/
addClass (ele, name) {
? ? if (!this.hasClass(ele, name)) ele.className += " " + name;
}
/*刪除類名*/
removeClass (ele, name) {
? ? if (this.hasClass(ele, name)) {
? ? ? ? var reg = new RegExp('(\\s|^)' + name + '(\\s|$)');
? ? ? ? ele.className = ele.className.replace(reg, '');
? ? }
}
/*替換類名*/
replaceClass (ele, newName, oldName) {
? ? this.removeClass(ele, oldName);
? ? this.addClass(ele, newName);
}
/*獲取兄弟節(jié)點*/
siblings (ele) {
? ? console.log(ele.parentNode)
? ? var chid = ele.parentNode.children,eleMatch = [];
? ? for(var i = 0, len = chid.length; i < len; i ++){
? ? ? ? if(chid[i] != ele){
? ? ? ? ? ? eleMatch.push(chid[i]);
? ? ? ? }
? ? }
? ? return eleMatch;
}
/*獲取行間樣式屬性*/
getByStyle (obj,name){
? ? if(obj.currentStyle){
? ? ? ? return? obj.currentStyle[name];
? ? }else{
? ? ? ? return? getComputedStyle(obj,false)[name];
? ? }
}
8. Storage 儲存操作
class StorageFn {
? ? constructor () {
? ? ? ? this.ls = window.localStorage;
? ? ? ? this.ss = window.sessionStorage;
? ? }
? ? /*-----------------cookie---------------------*/
? ? /*設(shè)置cookie*/
? ? setCookie (name, value, day) {
? ? ? ? var setting = arguments[0];
? ? ? ? if (Object.prototype.toString.call(setting).slice(8, -1) === 'Object'){
? ? ? ? ? ? for (var i in setting) {
? ? ? ? ? ? ? ? var oDate = new Date();
? ? ? ? ? ? ? ? oDate.setDate(oDate.getDate() + day);
? ? ? ? ? ? ? ? document.cookie = i + '=' + setting[i] + ';expires=' + oDate;
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? var oDate = new Date();
? ? ? ? ? ? oDate.setDate(oDate.getDate() + day);
? ? ? ? ? ? document.cookie = name + '=' + value + ';expires=' + oDate;
? ? ? ? }
? ? }
? ? /*獲取cookie*/
? ? getCookie (name) {
? ? ? ? var arr = document.cookie.split('; ');
? ? ? ? for (var i = 0; i < arr.length; i++) {
? ? ? ? ? ? var arr2 = arr[i].split('=');
? ? ? ? ? ? if (arr2[0] == name) {
? ? ? ? ? ? ? ? return arr2[1];
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return '';
? ? }
? ? /*刪除cookie*/
? ? removeCookie (name) {
? ? ? ? this.setCookie(name, 1, -1);
? ? }
? ? /*-----------------localStorage---------------------*/
? ? /*設(shè)置localStorage*/
? ? setLocal(key, val) {
? ? ? ? var setting = arguments[0];
? ? ? ? if (Object.prototype.toString.call(setting).slice(8, -1) === 'Object'){
? ? ? ? ? ? for(var i in setting){
? ? ? ? ? ? ? ? this.ls.setItem(i, JSON.stringify(setting[i]))
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? this.ls.setItem(key, JSON.stringify(val))
? ? ? ? }
? ? }
? ? /*獲取localStorage*/
? ? getLocal(key) {
? ? ? ? if (key) return JSON.parse(this.ls.getItem(key))
? ? ? ? return null;
? ? }
? ? /*移除localStorage*/
? ? removeLocal(key) {
? ? ? ? this.ls.removeItem(key)
? ? }
? ? /*移除所有l(wèi)ocalStorage*/
? ? clearLocal() {
? ? ? ? this.ls.clear()
? ? }
? ? /*-----------------sessionStorage---------------------*/
? ? /*設(shè)置sessionStorage*/
? ? setSession(key, val) {
? ? ? ? var setting = arguments[0];
? ? ? ? if (Object.prototype.toString.call(setting).slice(8, -1) === 'Object'){
? ? ? ? ? ? for(var i in setting){
? ? ? ? ? ? ? ? this.ss.setItem(i, JSON.stringify(setting[i]))
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? this.ss.setItem(key, JSON.stringify(val))
? ? ? ? }
? ? }
? ? /*獲取sessionStorage*/
? ? getSession(key) {
? ? ? ? if (key) return JSON.parse(this.ss.getItem(key))
? ? ? ? return null;
? ? }
? ? /*移除sessionStorage*/
? ? removeSession(key) {
? ? ? ? this.ss.removeItem(key)
? ? }
? ? /*移除所有sessionStorage*/
? ? clearSession() {
? ? ? ? this.ss.clear()
? ? }
}
9. Other 其它操作
/*獲取網(wǎng)址參數(shù)*/
getURL(name){
? ? var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
? ? var r = decodeURI(window.location.search).substr(1).match(reg);
? ? if(r!=null) return? r[2]; return null;
}
/*獲取全部url參數(shù),并轉(zhuǎn)換成json對象*/
getUrlAllParams (url) {
? ? var url = url ? url : window.location.href;
? ? var _pa = url.substring(url.indexOf('?') + 1),
? ? ? ? _arrS = _pa.split('&'),
? ? ? ? _rs = {};
? ? for (var i = 0, _len = _arrS.length; i < _len; i++) {
? ? ? ? var pos = _arrS[i].indexOf('=');
? ? ? ? if (pos == -1) {
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? var name = _arrS[i].substring(0, pos),
? ? ? ? ? ? value = window.decodeURIComponent(_arrS[i].substring(pos + 1));
? ? ? ? _rs[name] = value;
? ? }
? ? return _rs;
}
/*刪除url指定參數(shù)屏歹,返回url*/
delParamsUrl(url, name){
? ? var baseUrl = url.split('?')[0] + '?';
? ? var query = url.split('?')[1];
? ? if (query.indexOf(name)>-1) {
? ? ? ? var obj = {}
? ? ? ? var arr = query.split("&");
? ? ? ? for (var i = 0; i < arr.length; i++) {
? ? ? ? ? ? arr[i] = arr[i].split("=");
? ? ? ? ? ? obj[arr[i][0]] = arr[i][1];
? ? ? ? };
? ? ? ? delete obj[name];
? ? ? ? var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
? ? ? ? return url
? ? }else{
? ? ? ? return url;
? ? }
}
/*獲取十六進(jìn)制隨機(jī)顏色*/
getRandomColor () {
? ? return '#' + (function(h) {
? ? ? ? return new Array(7 - h.length).join("0") + h;
? ? })((Math.random() * 0x1000000 << 0).toString(16));
}
/*圖片加載*/
imgLoadAll(arr,callback){
? ? var arrImg = [];
? ? for (var i = 0; i < arr.length; i++) {
? ? ? ? var img = new Image();
? ? ? ? img.src = arr[i];
? ? ? ? img.onload = function(){
? ? ? ? ? ? arrImg.push(this);
? ? ? ? ? ? if (arrImg.length == arr.length) {
? ? ? ? ? ? ? ? callback && callback();
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
/*音頻加載*/
loadAudio(src, callback) {
? ? var audio = new Audio(src);
? ? audio.onloadedmetadata = callback;
? ? audio.src = src;
}
/*DOM轉(zhuǎn)字符串*/
domToStirng(htmlDOM){
? ? var div= document.createElement("div");
? ? div.appendChild(htmlDOM);
? ? return div.innerHTML
}
/*字符串轉(zhuǎn)DOM*/
stringToDom(htmlString){
? ? var div= document.createElement("div");
? ? div.innerHTML=htmlString;
? ? return div.children[0];
}
/**
* 光標(biāo)所在位置插入字符寨辩,并設(shè)置光標(biāo)位置
*
* @param {dom} 輸入框
* @param {val} 插入的值
* @param {posLen} 光標(biāo)位置處在 插入的值的哪個位置
*/
setCursorPosition (dom,val,posLen) {
? ? var cursorPosition = 0;
? ? if(dom.selectionStart){
? ? ? ? cursorPosition = dom.selectionStart;
? ? }
? ? this.insertAtCursor(dom,val);
? ? dom.focus();
? ? console.log(posLen)
? ? dom.setSelectionRange(dom.value.length,cursorPosition + (posLen || val.length));
}
/*光標(biāo)所在位置插入字符*/
insertAtCursor(dom, val) {
? ? if (document.selection){
? ? ? ? dom.focus();
? ? ? ? sel = document.selection.createRange();
? ? ? ? sel.text = val;
? ? ? ? sel.select();
? ? }else if (dom.selectionStart || dom.selectionStart == '0'){
? ? ? ? let startPos = dom.selectionStart;
? ? ? ? let endPos = dom.selectionEnd;
? ? ? ? let restoreTop = dom.scrollTop;
? ? ? ? dom.value = dom.value.substring(0, startPos) + val + dom.value.substring(endPos, dom.value.length);
? ? ? ? if (restoreTop > 0){
? ? ? ? ? ? dom.scrollTop = restoreTop;
? ? ? ? }
? ? ? ? dom.focus();
? ? ? ? dom.selectionStart = startPos + val.length;
? ? ? ? dom.selectionEnd = startPos + val.length;
? ? } else {
? ? ? ? dom.value += val;
? ? ? ? dom.focus();
? ? }
}