| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- var tools = {
- // 秒数转换成时分秒
- convertSecondsToHMS(seconds) {
- var hours = Math.floor(seconds / 3600);
- var minutes = Math.floor((seconds % 3600) / 60);
- var remainingSeconds = seconds % 60;
- // return hours + ":" + minutes + ":" + remainingSeconds;
- return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;
- },
- // 计算(中英文混合)字符串长度
- calStrLen(str) {
- var length = 0;
- for (var i = 0; i < str.length; i++) {
- // 将字符转换为 Unicode 编码
- var charCode = str.charCodeAt(i);
- if (charCode >= 0 && charCode <= 128) {
- length++;
- } else {
- length += 2;
- }
- }
- return length;
- },
- // 集合对象去重
- unique(arr, field) {
- var map = {};
- var res = [];
- for (var i = 0; i < arr.length; i++) {
- if (!map[arr[i][field]]) {
- map[arr[i][field]] = 1;
- res.push(arr[i]);
- }
- }
- return res;
- },
- // 正则取出html标签
- repalceHtml(str) {
- var dd = str.replace(/<\/?.+?>/g, "");
- var dds = dd.replace(/ /g, ""); //dds为得到后的内容
- return dds;
- },
- // 判断身份证号
- isSfz(idcard) {
- var id =
- /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/
- if (idcard === '') {
- uni.showToast({
- title: '请输入身份证号',
- icon: 'none'
- })
- } else if (!id.test(idcard)) {
- uni.showToast({
- title: '身份证号格式不正确!',
- icon: 'none'
- })
- return false
- } else {
- return false
- }
- },
- // 判断是否是手机号
- isPhone(val) {
- var patrn = /^(((1[3456789][0-9]{1})|(15[0-9]{1}))+\d{8})$/
- if (!patrn.test(val) || val === '') {
- uni.showToast({
- title: '手机号格式不正确',
- icon: 'none'
- })
- return false
- } else {
- return true
- }
- },
- // 判断邮箱
- isEmail(email) {
- if (email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
- return true;
- else
- return false;
- },
- //获取随机数
- getSuiji() {
- var Range = Max - Min;
- var Rand = Math.random();
- return (Min + Math.round(Rand * Range));
- },
- //计算多长时间前
- getDateDiff(dateTimeStamp) {
- var minute = 1000 * 60;
- var hour = minute * 60;
- var day = hour * 24;
- var halfamonth = day * 15;
- var month = day * 30;
- var year = day * 365;
- var now = new Date().getTime();
- var diffValue = now - dateTimeStamp;
- if (diffValue < 0) {
- return;
- }
- var yearC = diffValue / year;
- var monthC = diffValue / month;
- var weekC = diffValue / (7 * day);
- var dayC = diffValue / day;
- var hourC = diffValue / hour;
- var minC = diffValue / minute;
- if (yearC >= 1) {
- result = "" + parseInt(yearC) + "年前";
- }
- if (monthC >= 1) {
- result = "" + parseInt(monthC) + "月前";
- } else if (weekC >= 1) {
- result = "" + parseInt(weekC) + "周前";
- } else if (dayC >= 1) {
- result = "" + parseInt(dayC) + "天前";
- } else if (hourC >= 1) {
- result = "" + parseInt(hourC) + "小时前";
- } else if (minC >= 1) {
- result = "" + parseInt(minC) + "分钟前";
- } else
- result = "刚刚";
- return result;
- },
- // 时间戳转时间
- timestampToTime(timestamp, i) {
- var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
- // console.log(date, timestamp)
- var Y = date.getFullYear() + '-';
- var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
- var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
- var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
- var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
- var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
- if (i == 1) {
- return Y + M + D;
- }
- return Y + M + D + h + m + s;
- },
- // 是否是汉字
- isHanzi(str) {
- let reg = /\p{Unified_Ideograph}/ug;
- return reg.test(str);
- },
- // 是否是字母数字
- isStringAndNumber(str) {
- let regNumber = new RegExp(/^[0-9A-Za-z]+$/);
- return regNumber.test(str)
- },
- // var arr3 = [30,10,111,35,1899,50,45];
- // 集合排序 元素数字
- listSort(list) {
- arr3.sort(function(a, b) {
- return a - b;
- })
- },
- // var arr5 = [{id:10},{id:5},{id:6},{id:9},{id:2},{id:3}];
- // 元素 对象
- listObjectSort(arr) {
- arr.sort(function(a, b) {
- return a.id - b.id
- })
- return arr;
- },
- /*
- * 忽略大小写判断字符串是否相同
- * @param str1
- * @param str2
- * @returns {Boolean}
- */
- isEqualsIgnorecase: function(str1, str2) {
- if (str1.toUpperCase() == str2.toUpperCase()) {
- return true;
- } else {
- return false;
- }
- },
- /**
- * 判断是否是数字
- * @param value
- * @returns {Boolean}
- */
- isNum: function(value) {
- if (value != null && value.length > 0 && isNaN(value) == false) {
- return true;
- } else {
- return false;
- }
- },
- /**
- * 判断是否是中文
- * @param str
- * @returns {Boolean}
- */
- isChine: function(str) {
- var reg = /^([u4E00-u9FA5]|[uFE30-uFFA0])*$/;
- if (reg.test(str)) {
- return false;
- }
- return true;
- },
- /*验证是否为图片*/
- tmCheckImage: function(fileName) {
- return /(gif|jpg|jpeg|png|GIF|JPG|PNG)$/ig.test(fileName);
- },
- /*验证是否为视频*/
- tmCheckVideo: function(fileName) {
- return /(mp4|mp3|flv|wav)$/ig.test(fileName);
- },
- /**
- * 去除字符串两边的空格
- * @param str
- * @returns {number|Number}
- * 调用方法:var str = utils.trim("abcd")
- */
- trim: function(str) {
- String.prototype.trim = function() {
- return str.replace(/(^\s*)|(\s*$)/g, "");
- }
- },
- // 判断密码是否符合 至少6位,包括大小写字母、数字、特殊字符
- isPassword(val) {
- var reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,16}$/;
- if (val === '') {
- uni.showToast({
- title: '请输入密码',
- icon: 'none'
- })
- } else if (!reg.test(val)) {
- uni.showToast({
- title: '至少6位,包括大小写字母、数字、特殊字符',
- icon: 'none'
- })
- return false
- } else {
- return true
- }
- },
- // 电话匿名
- noPassByMobile(str) {
- if (null != str && str != undefined) {
- var pat = /(\d{3})\d*(\d{4})/;
- return str.replace(pat, '$1****$2');
- } else {
- return "";
- }
- },
- // 获取两点间的距离
- //进行经纬度转换为距离的计算
- Rad(d) {
- return d * Math.PI / 180.0; //经纬度转换成三角函数中度分表形式。
- },
- /*
- 计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
- 默认单位km
- */
- getMapDistance(lat1, lat2, lng1, lng2) {
- lat1 = lat1 || 0;
- lng1 = lng1 || 0;
- lat2 = lat2 || 0;
- lng2 = lng2 || 0;
- var rad1 = lat1 * Math.PI / 180.0;
- var rad2 = lat2 * Math.PI / 180.0;
- var a = rad1 - rad2;
- var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
- var r = 6378137;
- var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) *
- Math.pow(Math.sin(b / 2), 2)));
- console.log(lat1, lng1, lat2, lng2);
- console.log(distance);
- return Math.round(distance) / 1000;
- },
- // 预览图片
- yulanImg(item) {
- let arr = [item]
- uni.previewImage({
- urls: arr,
- });
- },
- }
- export default tools;
|