tsp-component
Version:
提供多端和react版本的UI组件
83 lines (78 loc) • 1.85 kB
text/typescript
import Exception from '../../exception';
declare const unescape: any;
/**
* 数组去重
*/
export function unique(arr: any[]): any[] {
const temp = [];
const length = arr.length;
let i;
for (i = 0; i < length; i++) {
if (temp.indexOf(arr[i]) === -1) {
temp.push(arr[i]);
}
}
return temp;
}
/**
* 读取cookie
*/
export function getCookie(name: string): string {
//正则匹配
const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
const arr = document.cookie.match(reg);
if (arr.length) {
return decodeURIComponent(arr[2]);
} else {
return undefined;
}
}
/**
* hex解码
*/
export function hexToString(str: string): string {
let tmp = '';
for (let i = 0; i < str.length; i += 2) {
tmp += '\\' + str.substring(i, i + 2);
}
str = unescape(tmp.replace(/\\/g, '%'));
let out;
let i;
let len;
let c;
let char2;
let char3;
out = '';
len = str.length;
i = 0;
while (i < len) {
c = str.charCodeAt(i++);
switch (c >> 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
out += str.charAt(i - 1);
break;
case 12: case 13:
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0));
break;
default:
break;
}
}
return out;
}
/**
* hex编码
*/
export function stringToHex(str: string): string {
const arr = [];
for (let i = 0; i < str.length; i++) {
arr[i] = (str.charCodeAt(i).toString(16)).slice(-4);
}
return arr.join('');
}