123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929 |
- const md = {
- empty: (val) => {
- if (val.length == 0 || val.replace(/\s/g, "").length == 0 || !val) {
- return true
- }
-
-
- },
- isEmpty(str) {
- if (str == null || typeof str == null || str == "" || str == "undefined") {
- return true;
- } else {
- return false;
- }
- },
-
- checkImg: (imgUrl) => {
- if (imgUrl.length < 0) {
- return false
- }
- var ImgObj = new Image();
- ImgObj.src = imgUrl;
- console.log(ImgObj, (ImgObj.width > 0 && ImgObj.height > 0))
- if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) {
- return true;
- } else {
- return false;
- }
- },
-
- removeSpace: (value) => {
- return value.replace(/\s+/g, "");
- },
-
- dedupe: (array) => {
- return Array.from(new Set(array))
- },
-
- dedupeObject: (obj) => {
- let uniques = [];
- let stringify = {};
- for (let i = 0; i < obj.length; i++) {
- let keys = Object.keys(obj[i]);
- keys.sort(function(a, b) {
- return (Number(a) - Number(b));
- });
- let str = '';
- for (let j = 0; j < keys.length; j++) {
- str += JSON.stringify(keys[j]);
- str += JSON.stringify(obj[i][keys[j]]);
- }
- if (!stringify.hasOwnProperty(str)) {
- uniques.push(obj[i]);
- stringify[str] = true;
- }
- }
- uniques = uniques;
- return uniques;
- },
-
- unique: (arr) => {
- if (Array.hasOwnProperty('from')) {
- return Array.from(new Set(arr));
- } else {
- var n = {},
- r = [];
- for (var i = 0; i < arr.length; i++) {
- if (!n[arr[i]]) {
- n[arr[i]] = true;
- r.push(arr[i]);
- }
- }
- return r;
- }
- },
-
- getProperty: (el, name, val) => {
- const prefix = 'data-'
- name = prefix + name
- if (val) {
- return el.setAttribute(name, val)
- } else {
- return el.getAttribute(name)
- }
- },
-
- hasClass: (el, className) => {
- let reg = new RegExp('(^|\\s)' + className + '(\\s|$)')
- return reg.test(el.className)
- },
-
- addClass: (el, className) => {
- if (this.hasClass(el, className)) {
- return
- }
- let newClass = el.className.split(' ')
- newClass.push(className)
- el.className = newClass.join(' ')
- },
-
- getHost: (url) => {
- let host = "null";
- if (typeof url == "undefined" || null == url) {
- url = window.location.href;
- }
- let regex = /^\w+\:\/\/([^\/]*).*/;
- let match = url.match(regex);
- if (typeof match != "undefined" && null != match) {
- host = match[1];
- }
- return host;
- },
-
- cutstr: (str, len) => {
- let temp;
- let icount = 0;
- let patrn = /[^\x00-\xff]/;
- let strre = "";
- for (let i = 0; i < str.length; i++) {
- if (icount < len - 1) {
- temp = str.substr(i, 1);
- if (patrn.exec(temp) == null) {
- icount = icount + 1;
- } else {
- icount = icount + 2;
- }
- strre += temp;
- } else {
- break
- }
- }
- return strre + "...";
- },
-
- fun_date: (num) => {
- let date1 = new Date();
-
- let time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate()
- let date2 = new Date(date1);
- date2.setDate(date1.getDate() + num);
-
- let time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
- return {
- start: time1,
- end: time2
- };
- },
-
- isMobile: (callback) => {
- let isMobile1 = {
- Android: function() {
- return navigator.userAgent.match(/Android/i) ? true : false;
- },
- BlackBerry: function() {
- return navigator.userAgent.match(/BlackBerry/i) ? true : false;
- },
- iOS: function() {
- return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
- },
- Windows: function() {
- return navigator.userAgent.match(/IEMobile/i) ? true : false;
- },
- any: function() {
- return (isMobile1.Android() || isMobile1.BlackBerry() || isMobile1.iOS() || isMobile1
- .Windows());
- }
- };
- callback(isMobile1)
- },
-
- decimal: (num, digit) => {
- if (parseInt(num) !== parseFloat(num)) {
- return num
- }
- if (typeof num == 'number') {
- num = num || 0;
- let f = num.toFixed(digit);
- return f
- } else {
-
- let f = 0;
- return f.toFixed(digit)
- }
- },
-
- timeTrans: ({
- time,
- format
- }) => {
- let timer = time || new Date();
- let date = new Date(timer);
- let obj = {
- Y: '',
- M: '',
- D: '',
- h: '',
- m: '',
- s: ''
- }
- obj.Y = date.getFullYear();
- obj.M = date.getMonth() + 1;
- obj.M = obj.M < 10 ? "0" + obj.M : obj.M;
- obj.D = date.getDate();
- obj.D = obj.D < 10 ? "0" + obj.D : obj.D;
- obj.h = date.getHours();
- obj.h = obj.h < 10 ? "0" + obj.h : obj.h;
- obj.m = date.getMinutes();
- obj.m = obj.m < 10 ? "0" + obj.m : obj.m;
- obj.s = date.getSeconds();
- obj.s = obj.s < 10 ? "0" + obj.s : obj.s;
- if (format) {
- let str = '';
- for (let index in format) {
- str += `${obj[format[index]] || format[index]}`;
- }
- return str;
- } else {
- return `${obj.Y}-${obj.M}-${obj.D}`
- }
- },
-
- injectScript: (src) => {
- const s = document.createElement('script');
- s.type = 'text/javascript';
- s.async = true;
- s.src = src;
- const t = document.getElementsByTagName('script')[0];
- t.parentNode.insertBefore(s, t);
- },
-
- download: (url) => {
- var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
- var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1;
- if (isChrome || isSafari) {
- var link = document.createElement('a');
- link.href = url;
- if (link.download !== undefined) {
- var fileName = url.substring(url.lastIndexOf('/') + 1, url.length);
- link.download = fileName;
- }
- if (document.createEvent) {
- var e = document.createEvent('MouseEvents');
- e.initEvent('click', true, true);
- link.dispatchEvent(e);
- return true;
- }
- }
- if (url.indexOf('?') === -1) {
- url += '?download';
- }
- window.open(url, '_self');
- return true;
- },
-
- getScrollPosition: (el = window) => ({
- x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
- y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
- }),
-
- scrollToTop: () => {
- const c = document.documentElement.scrollTop || document.body.scrollTop;
- if (c > 0) {
- window.requestAnimationFrame(this.scrollToTop);
- window.scrollTo(0, c - c / 8);
- }
- },
-
- elementIsVisibleInViewport: (el, partiallyVisible = false) => {
- const {
- top,
- left,
- bottom,
- right
- } = el.getBoundingClientRect();
- const {
- innerHeight,
- innerWidth
- } = window;
- return partiallyVisible ?
- ((top > 0 && top < innerHeight) || (bottom > 0 && bottom < innerHeight)) &&
- ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth)) :
- top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
- },
-
- shuffle: (arr) => {
- var result = [],
- random;
- while (arr.length > 0) {
- random = Math.floor(Math.random() * arr.length);
- result.push(arr[random])
- arr.splice(random, 1)
- }
- return result;
- },
-
- copyTextToClipboard: (value) => {
- var textArea = document.createElement("textarea");
- textArea.style.background = 'transparent';
- textArea.value = value;
- document.body.appendChild(textArea);
- textArea.select();
- try {
- var successful = document.execCommand('copy');
- } catch (err) {
- console.log('Oops, unable to copy');
- }
- document.body.removeChild(textArea);
- },
-
- random: function(min, max) {
- if (arguments.length === 2) {
- return Math.floor(min + Math.random() * ((max + 1) - min))
- } else {
- return null;
- }
- },
-
- 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)
- {
- 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;
- },
-
- contains: (arr, val) => {
- return arr.indexOf(val) != -1 ? true : false;
- },
-
- sort: (arr, type) => {
- return arr.sort((a, b) => {
- switch (type) {
- case 1:
- return a - b;
- case 2:
- return b - a;
- case 3:
- return Math.random() - 0.5;
- default:
- return arr;
- }
- })
- },
-
- union: function(a, b) {
- var newArr = a.concat(b);
- return this.unique(newArr);
- },
-
- intersect: (a, b) => {
- var _this = this;
- a = this.unique(a);
- return this.map(a, function(o) {
- return _this.contains(b, o) ? o : null;
- });
- },
-
- removearr: (arr, ele) => {
- var index = arr.indexOf(ele);
- if (index > -1) {
- arr.splice(index, 1);
- }
- return arr;
- },
-
- formArray: (ary) => {
- var arr = [];
- if (Array.isArray(ary)) {
- arr = ary;
- } else {
- arr = Array.prototype.slice.call(ary);
- };
- return arr;
- },
-
- max: (arr) => {
- return Math.max.apply(null, arr);
- },
-
- min: (arr) => {
- return Math.min.apply(null, arr);
- },
-
- sum: (arr) => {
- return arr.reduce((pre, cur) => {
- return pre + cur
- })
- },
-
- average: (arr) => {
- return this.sum(arr) / arr.length
- },
-
- isObjectEqual: (a, b) => {
- var aProps = Object.getOwnPropertyNames(a);
- var bProps = Object.getOwnPropertyNames(b);
- if (aProps.length !== bProps.length) {
- return false;
- }
- for (var i = 0; i < aProps.length; i++) {
- var propName = aProps[i];
- if (a[propName] !== b[propName]) {
- return false;
- }
- }
- return true;
- },
-
- throttle: (fun, delay) => {
- let last, deferTimer
- return function(args) {
- let that = this
- let _args = args
- let now = +new Date()
- if (last && now < last + delay) {
- clearTimeout(deferTimer)
- deferTimer = setTimeout(function() {
- last = now
- fun.apply(that, _args)
- }, delay)
- } else {
- last = now
- fun.apply(that, _args)
- }
- }
- },
-
- debouncer: (fn, w, im) => {
- var T;
- return function() {
- var t = this;
- let a = arguments;
- if (T) clearTimeout(T);
- if (im) {
-
- var cN = !T;
- T = setTimeout(function() {
- T = null;
- }, w)
- if (cN) fn.apply(t, a)
- } else {
- T = setTimeout(function() {
- fn.apply(t, a)
- }, w);
- }
- }
- },
-
- ArrayObjSort: (ArrayObj, key, sequence) => {
- function sortkey(a, b) {
- switch (sequence) {
- case 'a-b':
- return a[key] - b[key];
- case 'b-a':
- return b[key] - a[key];
- }
- }
- ArrayObj.sort(sortkey);
- return ArrayObj;
- },
-
- uniqueStr: () => {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
- var r = Math.random() * 16 | 0,
- v = c == 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
- },
-
- randomStr: (e) => {
-
- e = e || 32;
- var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789",
- a = t.length,
- n = "";
- for (let i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
- return n
- }
- }
- const regExp = {
-
- phone: (s) => {
- return /^(1[3-9])\d{9}$/.test(s)
- },
-
- isEmail: (s) => {
- return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
- },
-
- isMobile: (s) => {
- return /^1[0-9]{10}$/.test(s)
- },
-
- isPhone: (s) => {
- return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
- },
-
- isURL: (s) => {
- return /^http[s]?:\/\/.*/.test(s)
- },
-
- isCapital: (s) => {
- return /\b[^\Wa-z][^\WA-Z]*\b/g.test(s);
- },
-
- isString: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'String'
- },
-
- isNumber: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Number'
- },
-
- isBoolean: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'
- },
-
- isFunction: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Function'
- },
-
- isNull: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Null'
- },
-
- isUndefined: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'
- },
-
- isObj: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Object'
- },
-
- isArray: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Array'
- },
-
- isDate: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Date'
- },
-
- isRegExp: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp'
- },
-
- isError: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Error'
- },
-
- isSymbol: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol'
- },
-
- isPromise: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Promise'
- },
-
- isSet: (o) => {
- return Object.prototype.toString.call(o).slice(8, -1) === 'Set'
- },
-
- isWeiXin: () => {
- var ua = window.navigator.userAgent.toLowerCase();
- return ua.match(/microMessenger/i) == 'micromessenger'
- },
-
- isDeviceMobile: () => {
- var ua = window.navigator.userAgent.toLowerCase();
- return /android|webos|iphone|ipod|balckberry/i.test(ua)
- },
-
- isQQBrowser: () => {
- var ua = window.navigator.userAgent.toLowerCase();
- return !!ua.match(/mqqbrowser|qzone|qqbrowser|qbwebviewtype/i)
- },
-
- isIos: () => {
- var u = navigator.userAgent;
- if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
- return false
- } else if (u.indexOf('iPhone') > -1) {
- return true
- } else if (u.indexOf('iPad') > -1) {
- return false
- } else if (u.indexOf('Windows Phone') > -1) {
- return false
- } else {
- return false
- }
- },
-
- isPC: () => {
- var userAgentInfo = window.navigator.userAgent;
- var Agents = ["Android", "iPhone",
- "SymbianOS", "Windows Phone",
- "iPad", "iPod"
- ];
- var flag = true;
- for (var v = 0; v < Agents.length; v++) {
- if (userAgentInfo.indexOf(Agents[v]) > 0) {
- flag = false;
- break;
- }
- }
- return flag;
- },
-
- isCardID: (sId) => {
- if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {
- console.log('你输入的身份证长度或格式错误')
- return false
- }
-
- var aCity = {
- 11: "北京",
- 12: "天津",
- 13: "河北",
- 14: "山西",
- 15: "内蒙古",
- 21: "辽宁",
- 22: "吉林",
- 23: "黑龙江",
- 31: "上海",
- 32: "江苏",
- 33: "浙江",
- 34: "安徽",
- 35: "福建",
- 36: "江西",
- 37: "山东",
- 41: "河南",
- 42: "湖北",
- 43: "湖南",
- 44: "广东",
- 45: "广西",
- 46: "海南",
- 50: "重庆",
- 51: "四川",
- 52: "贵州",
- 53: "云南",
- 54: "西藏",
- 61: "陕西",
- 62: "甘肃",
- 63: "青海",
- 64: "宁夏",
- 65: "新疆",
- 71: "台湾",
- 81: "香港",
- 82: "澳门",
- 91: "国外"
- };
- if (!aCity[parseInt(sId.substr(0, 2))]) {
-
- return false
- }
-
- var sBirthday = (sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2)))
- .replace(/-/g,
- "/"),
- d = new Date(sBirthday)
- if (sBirthday != (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate())) {
-
- return false
- }
-
- var sum = 0,
- weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
- codes = "10X98765432"
- for (var i = 0; i < sId.length - 1; i++) {
- sum += sId[i] * weights[i];
- }
- var last = codes[sum % 11];
-
- if (sId[sId.length - 1] != last) {
-
- return false
- }
- return true
- }
- }
- const ipurl = 'https://pv.sohu.com/cityjson?ie=utf-8';
- const _try_ = (callback) => {
- try {
- callback()
- } catch (error) {
-
-
- }
- };
- export {
- md,
- regExp,
- ipurl,
- _try_
- }
- (function(doc, win) {
- var docEl = doc.documentElement,
- resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
- recalc = function() {
- var clientWidth = docEl.clientWidth;
- var fontSize = 20;
- docEl.style.fontSize = fontSize + 'px';
- var docStyles = getComputedStyle(docEl);
- var realFontSize = parseFloat(docStyles.fontSize);
- var scale = realFontSize / fontSize;
- console.log("realFontSize: " + realFontSize + ", scale: " + scale);
- fontSize = clientWidth / 667 * 20;
- if (isIphoneX()) fontSize = 19;
- fontSize = fontSize / scale;
- docEl.style.fontSize = fontSize + 'px';
- };
-
- if (!doc.addEventListener) return;
- win.addEventListener(resizeEvt, recalc, false);
- doc.addEventListener('DOMContentLoaded', recalc, false);
-
- function isIphoneX() {
- return /iphone/gi.test(navigator.userAgent) && (win.screen.height == 812 && win.screen.width == 375)
- }
- })(document, window);
|