摘要:最新使用的組織機(jī)構(gòu)代碼在年頒布實(shí)施,由位數(shù)字或大寫拉丁字母本體代碼和位數(shù)字或大寫拉丁字母校驗(yàn)碼組成。本體代碼采用系列即分區(qū)段順序編碼方法。
目錄:
截取指定字節(jié)數(shù)的字符串
判斷是否微信
獲取時間格式的幾個舉例
獲取字符串字節(jié)長度
對象克隆、深拷貝
組織結(jié)構(gòu)代碼證驗(yàn)證
身份證號驗(yàn)證
js正則為url添加http標(biāo)識
URL有效性校驗(yàn)方法
自定義jsonp方法
cookie操作
生成隨機(jī)字符串 (可指定長度)
瀏覽器判斷
Rem移動端適配
獲取url后參數(shù)
動態(tài)加載JS
生成隨機(jī)顏色值
1.截取指定字節(jié)數(shù)的字符串/** * 截取指定字節(jié)的字符串 * @param str 要截取的字符穿 * @param len 要截取的長度,根據(jù)字節(jié)計(jì)算 * @param suffix 截取前l(fā)en個后,其余的字符的替換字符,一般用“…” * @returns {*} */ function cutString(str, len, suffix) { if (!str) return ""; if (len <= 0) return ""; if (!suffix) suffix = ""; var templen = 0; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 255) { templen += 2; } else { templen++ } if (templen == len) { return str.substring(0, i + 1) + suffix; } else if (templen > len) { return str.substring(0, i) + suffix; } } return str; }2.判斷是否微信
/** * 判斷微信瀏覽器 * @returns {Boolean} */ function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return true; } else { return false; } }3.獲取時間格式的幾個舉例
function getTimeFormat(time) { var date = new Date(parseInt(time) * 1000); var month, day, hour, min; parseInt(date.getMonth()) + 1 < 10 ? month = "0" + (parseInt(date.getMonth()) + 1) : month = parseInt(date.getMonth()) + 1; date.getDate() < 10 ? day = "0" + date.getDate() : day = date.getDate(); date.getHours() < 10 ? hour = "0" + date.getHours() : hour = date.getHours(); date.getMinutes() < 10 ? min = "0" + date.getMinutes() : min = date.getMinutes(); return [month, day].join("-") + " " + hour + ":" + min } function getTimeFormatYMD(time) { var date = new Date(parseInt(time) * 1000); var year, month, day; year = date.getFullYear(); parseInt(date.getMonth()) + 1 < 10 ? month = "0" + (parseInt(date.getMonth()) + 1) : month = parseInt(date.getMonth()) + 1; date.getDate() < 10 ? day = "0" + date.getDate() : day = date.getDate(); return [year, month, day].join("-") } function getTimeFormatAll(time) { var date = new Date(parseInt(time) * 1000); var year, month, day, hour, min, second; year = date.getFullYear(); parseInt(date.getMonth()) + 1 < 10 ? month = "0" + (parseInt(date.getMonth()) + 1) : month = parseInt(date.getMonth()) + 1; date.getDate() < 10 ? day = "0" + date.getDate() : day = date.getDate(); date.getHours() < 10 ? hour = "0" + date.getHours() : hour = date.getHours(); date.getMinutes() < 10 ? min = "0" + date.getMinutes() : min = date.getMinutes(); date.getSeconds() < 10 ? second = "0" + date.getSeconds() : second = date.getSeconds(); return [year, month, day].join("-") + " " + hour + ":" + min + ":" + second }4.獲取字符串字節(jié)長度
/** * 獲取字符串字節(jié)長度 * @param {String} * @returns {Boolean} */ function checkLength(v) { var realLength = 0; var len = v.length; for (var i = 0; i < len; i++) { var charCode = v.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLength += 1; else realLength += 2; } return realLength; }5.對象克隆、深拷貝
/** * 對象克隆&深拷貝 * @param obj * @returns {{}} */ function cloneObj(obj) { var newO = {}; if (obj instanceof Array) { newO = []; } for (var key in obj) { var val = obj[key]; newO[key] = typeof val === "object" ? arguments.callee(val) : val; } return newO; };
克隆拷貝增強(qiáng)版
/** * 對象克隆&深拷貝 * @param obj * @returns {{}} */ function clone(obj) { // Handle the 3 simple types, and null or undefined if (null == obj || "object" != typeof obj) return obj; // Handle Date if (obj instanceof Date) { var copy = new Date(); copy.setTime(obj.getTime()); return copy; } // Handle Array if (obj instanceof Array) { var copy = []; for (var i = 0, len = obj.length; i < len; ++i) { copy[i] = clone(obj[i]); } return copy; } // Handle Object if (obj instanceof Object) { var copy = {}; for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; } throw new Error("Unable to copy obj! Its type isn"t supported."); }6.組織結(jié)構(gòu)代碼證驗(yàn)證
驗(yàn)證規(guī)則:
組織機(jī)構(gòu)代碼是每一個機(jī)關(guān)、社會團(tuán)體、企事業(yè)單位在全國范圍內(nèi)唯一的、始終不變的法定代碼標(biāo)識。最新使用的組織機(jī)構(gòu)代碼在1997年頒布實(shí)施,由8位數(shù)字(或大寫拉丁字母)本體代碼和1位數(shù)字(或大寫拉丁字母)校驗(yàn)碼組成。本體代碼采用系列(即分區(qū)段)順序編碼方法。校驗(yàn)碼按下列公式計(jì)算:8 C9 = 11 - MOD(∑Ci * Wi,11)… (2) i = 1其中:MOD——表示求余函數(shù);i——表示代碼字符從左到右位置序號;Ci——表示第i位置上的代碼字符的值,采用附錄A“代碼字符集”所列字符;C9——表示校驗(yàn)碼;Wi——表示第i位置上的加權(quán)因子,其數(shù)值如下表:i 1 2 3 4 5 6 7 8 Wi 3 7 9 10 5 8 4 2當(dāng)MOD函數(shù)值為1(即C9 = 10)時,校驗(yàn)碼用字母X表示。
驗(yàn)證方法:
checkOrgCodeValid: function(el) { var txtval = el.value; var values = txtval.split("-"); var ws = [3, 7, 9, 10, 5, 8, 4, 2]; var str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var reg = /^([0-9A-Z]){8}$/; if (!reg.test(values[0])) { return false } var sum = 0; for (var i = 0; i < 8; i++) { sum += str.indexOf(values[0].charAt(i)) * ws[i]; } var C9 = 11 - (sum % 11); var YC9 = values[1] + ""; if (C9 == 11) { C9 = "0"; } else if (C9 == 10) { C9 = "X"; } else { C9 = C9 + ""; } return YC9 == C9; }7.身份證號驗(yàn)證
/** * 驗(yàn)證身份證號 * @param el 號碼輸入input * @returns {boolean} */ function checkCardNo(el) { var txtval = el.value; var reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/; return reg.test(txtval) }8.js正則為url添加http標(biāo)識
9.URL有效性校驗(yàn)方法
/** * URL有效性校驗(yàn) * @param str_url * @returns {boolean} */ function isURL(str_url) { // 驗(yàn)證url var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*"().&=+$%-]+: )?[0-9a-z_!~*"().&=+$%-]+@)?" // ftp的user@ + "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 + "|" // 允許IP和DOMAIN(域名) + "([0-9a-z_!~*"()-]+.)*" // 域名- www. + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二級域名 + "[a-z]{2,6})" // first level domain- .com or .museum + "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" // a slash isn"t required if there is no file name + "(/[0-9a-z_!~*"().;?:@&=+$,%#-]+)+/?)$"; var re = new RegExp(strRegex); return re.test(str_url); } // 建議的正則 functionisURL(str) { return !! str.match(/(((^https?:(?://)?)(?:[-;:&=+$,w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,w]+@)[A-Za-z0-9.-]+)((?:/[+~%/.w-_]*)???(?:[-+=&;%@.w_]*)#?(?:[w]*))?)$/g); }10.自定義jsonp方法
/** * 自定義封裝jsonp方法 * @param options */ jsonp = function(options) { options = options || {}; if (!options.url || !options.callback) { throw new Error("參數(shù)不合法"); } //創(chuàng)建 script 標(biāo)簽并加入到頁面中 var callbackName = ("jsonp_" + Math.random()).replace(".", ""); var oHead = document.getElementsByTagName("head")[0]; options.data[options.callback] = callbackName; var params = formatParams(options.data); var oS = document.createElement("script"); oHead.appendChild(oS); //創(chuàng)建jsonp回調(diào)函數(shù) window[callbackName] = function(json) { oHead.removeChild(oS); clearTimeout(oS.timer); window[callbackName] = null; options.success && options.success(json); }; //發(fā)送請求 oS.src = options.url + "?" + params; //超時處理 if (options.time) { oS.timer = setTimeout(function() { window[callbackName] = null; oHead.removeChild(oS); options.fail && options.fail({ message: "超時" }); }, time); } }; /** * 格式化參數(shù) * @param data * @returns {string} */ formatParams = function(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } return arr.join("&"); }11.cookie操作
//寫cookies setCookie = function(name, value, time) { var strsec = getsec(time); var exp = new Date(); exp.setTime(exp.getTime() + strsec * 1); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); } //cookie操作輔助函數(shù) getsec = function(str) { var str1 = str.substring(1, str.length) * 1; var str2 = str.substring(0, 1); if (str2 == "s") { return str1 * 1000; } else if (str2 == "h") { return str1 * 60 * 60 * 1000; } else if (str2 == "d") { return str1 * 24 * 60 * 60 * 1000; } } //讀取cookies getCookie = function(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) return (arr[2]); else return null; } //刪除cookies delCookie = function(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); }12.生成隨機(jī)字符串 (可指定長度)
/** * 生成隨機(jī)字符串(可指定長度) * @param len * @returns {string} */ randomString = function(len) { len = len || 8; var $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"; /****默認(rèn)去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ var maxPos = $chars.length; var pwd = ""; for (var i = 0; i < len; i++) { pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); } return pwd; }13.瀏覽器判斷
function parseUA() { var u = navigator.userAgent; var u2 = navigator.userAgent.toLowerCase(); return { //移動終端瀏覽器版本信息 trident: u.indexOf("Trident") > -1, //IE內(nèi)核 presto: u.indexOf("Presto") > -1, //opera內(nèi)核 webKit: u.indexOf("AppleWebKit") > -1, //蘋果、谷歌內(nèi)核 gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") == -1, //火狐內(nèi)核 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終端或uc瀏覽器 iPhone: u.indexOf("iPhone") > -1, //是否為iPhone或者QQHD瀏覽器 iPad: u.indexOf("iPad") > -1, //是否iPad webApp: u.indexOf("Safari") == -1, //是否web應(yīng)該程序,沒有頭部與底部 iosv: u.substr(u.indexOf("iPhone OS") + 9, 3), weixin: u2.match(/MicroMessenger/i) == "micromessenger", ali: u.indexOf("AliApp") > -1, }; } var ua = parseUA(); if (!ua.mobile) { location.href = "./pc.html"; }14.Rem移動端適配
var rem = { baseRem: 40, // 基準(zhǔn)字號,按照iphone6應(yīng)該為20,此處擴(kuò)大2倍,便于計(jì)算 baseWidth: 750, // 基準(zhǔn)尺寸寬,此處是按照ihpone6的尺寸 rootEle: document.getElementsByTagName("html")[0], initHandle: function() { this.setRemHandle(); this.resizeHandle(); }, setRemHandle: function() { var clientWidth = document.documentElement.clientWidth || document.body.clientWidth; this.rootEle.style.fontSize = clientWidth * this.baseRem / this.baseWidth + "px"; }, resizeHandle: function() { var that = this; window.addEventListener("resize", function() { setTimeout(function() { that.setRemHandle(); }, 300); }); } }; rem.initHandle();15.獲取url后參數(shù)
function GetRequest() { var url = location.search; //獲取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]); } } return theRequest; }16.動態(tài)加載JS
function loadScript(url, callback) { var script = document.createElement("script"); script.type = "text/"; if (typeof(callback) != "undefined") { if (script.readyState) { script.onreadystatechange = function() { if (script.readyState == "loaded" || script.readyState == "complete") { script.onreadystatechange = null; callback(); } }; } else { script.onload = function() { callback(); }; } } script.src = url; document.body.appendChild(script); }17.生成隨機(jī)顏色值
function getRandomColor () { const rgb = [] for (let i = 0 ; i < 3; ++i){ let color = Math.floor(Math.random() * 256).toString(16) color = color.length == 1 ? "0" + color : color rgb.push(color) } return "#" + rgb.join("") }
原文:https://frontendjs.com/topic/...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96909.html
摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準(zhǔn)備自己面試筆記我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結(jié)方便自己復(fù)習(xí)詳細(xì)內(nèi)容會在之后一一對應(yīng)地補(bǔ)充上去有些在我的個人主頁筆記中也有相關(guān)記錄這里暫且放一個我的面試知識點(diǎn)目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準(zhǔn)備自己面試筆記, 我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結(jié),方便自...
摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準(zhǔn)備自己面試筆記我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結(jié)方便自己復(fù)習(xí)詳細(xì)內(nèi)容會在之后一一對應(yīng)地補(bǔ)充上去有些在我的個人主頁筆記中也有相關(guān)記錄這里暫且放一個我的面試知識點(diǎn)目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準(zhǔn)備自己面試筆記, 我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結(jié),方便自...
摘要:因?yàn)橥粫r間,只能處理一個異步,這又牽扯到單線程問題了。然后控制臺默默打印了個目前前端,異步主要為前后端交互以及定時器,僅僅說前端,如果說的話,還有文件讀取等其他的方面會異步。 此篇文章完全按照我個人理解去寫。 1.何為JS 先說說js干啥的。不負(fù)責(zé)點(diǎn)說,js就是操作瀏覽器的。 有人可能說nodeJS,nodeJS嚴(yán)格意義上只能說是用的ES,因?yàn)樗麤]有dom ,也沒有bom。 簡單點(diǎn)說...
摘要:也可以直接調(diào)用內(nèi)置方法常用高階函數(shù)方法的作用是接收一個函數(shù)作為參數(shù),對數(shù)組中每個元素按順序調(diào)用一次傳入的函數(shù)并返回結(jié)果,不改變原數(shù)組,返回一個新數(shù)組。 Ps. 晚上加班到快十點(diǎn),回來趕緊整理整理這篇文章,今天老大給我推薦了一篇文章,我從寫技術(shù)博客中收獲到了什么?- J_Knight_,感受也是很多,自己也需要慢慢養(yǎng)成記錄博客的習(xí)慣,即使起步艱難,難以堅(jiān)持,但還是要讓自己加油加油。 前...
摘要:常用插件記錄一些自己在使用時常用的一些插件安裝插件需要先安裝按調(diào)出復(fù)制代碼運(yùn)行一個的值轉(zhuǎn)值的自動完成插件。配置參數(shù)參數(shù)配置文件轉(zhuǎn)的單位比例,默認(rèn)為。轉(zhuǎn)的小數(shù)部分的最大長度。啟用此插件的文件類型。當(dāng)您重溫代碼時候非常有用。 Sublime text 常用插件 記錄一些自己在使用sublime時常用的一些插件 cssrem 、SublimeServer 、 FileHeader 、Omni...
閱讀 3024·2021-09-22 15:52
閱讀 2903·2019-08-30 15:55
閱讀 2700·2019-08-30 15:53
閱讀 2454·2019-08-30 13:21
閱讀 1621·2019-08-30 13:10
閱讀 2481·2019-08-26 12:09
閱讀 2564·2019-08-26 10:33
閱讀 1802·2019-08-23 18:06