| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import { md5 } from "./MD5";
- /**
- * 工具类
- * @author 袁浩、王锡铜
- */
- export class Utils {
- private static md5Object;
- /**
- * md5方式加密字符串
- */
- public static md5(str: string): string {
- this.md5Object = this.md5Object || new md5();
- return this.md5Object.hex_md5(str);
- }
- /**
- * 复制文本到剪贴板
- */
- public static copy(message: string): void {
- var input = document.createElement("input");
- input.value = message;
- document.body.appendChild(input);
- input.select();
- input.setSelectionRange(0, input.value.length), document.execCommand('Copy');
- document.body.removeChild(input);
- }
- /**
- * 比较版本号,如果version1 > version2返回1,如果version1 < version2返回-1,否则返回0
- * @param version1
- * @param version2
- * @returns
- */
- public static compareVersion(version1: string, version2: string) {
- var arr1: any[] = version1.split('.');
- var arr2: any[] = version2.split('.');
- //获取最大数组长度
- var maxLen = arr1.length > arr2.length ? arr1.length : arr2.length;
- for (let i = 0; i < maxLen; i++) {
- //转换数字
- var p1 = arr1[i] >> 0 || 0;
- var p2 = arr2[i] >> 0 || 0;
- if (p1 > p2) {
- return 1
- } else if (p1 < p2) {
- return -1
- }
- }
- return 0
- }
- /**
- * 判断是否是整型
- */
- public static isInteger(x: number): boolean {
- return x % 1 === 0;
- }
- /**
- * 判断是否是数组
- * */
- public static isArray(obj): boolean {
- return Object.prototype.toString.call(obj) === '[object Array]';
- }
- /**
- * 日期格式化
- * @param date 日期对象
- * @param formate 例:yyyy-MM-dd hh:mm:ss S
- * @returns 格式化后的日期字符串
- */
- public static formatDate(date: Date, formate: string = "yyyy-MM-dd hh:mm:ss"): string {
- var milliseconds = date.getMilliseconds().toString();
- while (milliseconds.length != 3) {
- milliseconds = "0" + milliseconds;
- }
- var o = {
- "M+": date.getMonth() + 1, //月份
- "d+": date.getDate(), //日
- "h+": date.getHours(), //小时
- "m+": date.getMinutes(), //分
- "s+": date.getSeconds(), //秒
- "q+": Math.floor((date.getMonth() + 3) / 3), //季度
- "S": milliseconds //毫秒
- };
- if (/(y+)/.test(formate)) formate = formate.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var k in o)
- if (new RegExp("(" + k + ")").test(formate)) formate = formate.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- return formate;
- }
- /**
- * 格式化倒计时
- * @author 王锡铜
- */
- public static formatCountDown(time: number, needDay: boolean = true, useCN: boolean = false): string {
- let ss = Math.floor(time / 1000);
- let day = Math.floor(ss / 3600 / 24);
- let h = Math.floor(ss / 3600 % 24) < 10 ? "0" + Math.floor(ss / 3600 % 24) : Math.floor(ss / 3600 % 24);
- let m = Math.floor(ss / 60 % 60) < 10 ? "0" + Math.floor(ss / 60 % 60) : Math.floor(ss / 60 % 60);
- let s = Math.floor(ss % 60) < 10 ? "0" + Math.floor(ss % 60) : Math.floor(ss % 60);
- let result = "";
- if (day > 0) {
- if (needDay) {
- result = day + "天" + h + (useCN ? "小时" : ":") + m + (useCN ? "分钟" : ":") + s + (useCN ? "秒" : "");
- } else {
- result = (day * 24 + Math.floor(ss / 3600 % 24)) + (useCN ? "小时" : ":") + m + (useCN ? "分钟" : ":") + s + (useCN ? "秒" : "");
- }
- } else if (h > 0) {
- result = h + (useCN ? "小时" : ":") + m + (useCN ? "分钟" : ":") + s + (useCN ? "秒" : "");
- } else {
- result = m + ((useCN ? "分钟" : ":")) + s+ (useCN ? "秒" : "");
- }
- return result;
- }
- /**
- * 获取随机数(左右闭区间)
- * @param min 最小值
- * @param max 最大值
- * @author 王锡铜
- */
- public static random_both(min: number, max: number): number {
- return min + Math.round(Math.random() * (max - min));
- }
- /**
- * 移除数组元素
- * @param array 数组
- * @param item 元素
- */
- public static removeArrayItem(array: any[], item: any) {
- var index = array.indexOf(item);
- (index != -1) && array.splice(index, 1);
- }
- }
|