export function allowPlus($event: string, fixed = 2):string {
$event = $event.replace(/\s/gi, '').replace(/[^\d.]/gi, ``);
if ($event.length >= 2 && $event[0] === '0' && $event[1] !== '.') {
$event = $event.substring(1, $event.length);
}
const points = $event.match(/\./gi) || [];
if ($event[$event.length - 1] === '.' && points.length >= 2) {
$event = $event.substring(0, $event.length - 1);
}
if ($event[0] === '.') {
$event = $event.substring(0, 1);
}
if ($event.indexOf('.') >= 1) {
const $eventArr = $event.split('.');
$event = parseInt($eventArr[0], 10) + '.' + $eventArr[1].substring(0, 2);
} else {
$event = parseInt($event, 10) + '';
$event === 'NaN' && ($event = '');
}
return $event;
}
export function allowChineseEnglish($event: string) {
return $event.replace(/[^\u4e00-\u9fa5\sA-Za-z]/g, ``);
}
export function matchEmail(text: string) {
return (rule: ruleValidate, value: string, callback: (res:Error | undefined) => void ) => {
const reg = /^([a-zA-Z]|[0-9])(\w|-|\.)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
if (!value.match(reg)) {
callback(new Error(text));
return;
}
callback(undefined);
};
}
export function matchPhone(text: string) {
return (rule: ruleValidate, value: string, callback: (res:Error | undefined) => void ) => {
const reg = /^(1[3-9])\d{9}$/;
if (!value.match(reg)) {
callback(new Error(text));
return;
}
callback(undefined);
};
}
export function matchPwd(text?: string) {
return (rule: ruleValidate, value: string, callback: (res:Error | undefined) => void ) => {
const bits = 8;
if (value.length < bits) {
callback(new Error(text || '密码最小必须是8位'));
return;
}
if (!value.match(/[a-z]/g) || !value.match(/[A-Z]/g) || !value.match(/[0-9]/g)) {
callback(new Error(text || '密码必须包含大小写字母与数字'));
return;
}
callback(undefined);
};
}
export function allowEnglishNumber($event: string) {
return $event.replace(/[^A-Za-z\d]/g, ``);
}
export function formatDate(value?: string | null | undefined | number | Date, style = 'yyyy-MM-dd hh:mm:ss' ) : string {
if (!value) {
value = new Date();
} else {
value = new Date(value);
}
let date: string = value.toLocaleString();
date = date.replace(/[: ]/ig, '/');
const dateArr = date.split('/');
if ( Number(dateArr[1]) <= 9) {
dateArr[1] = `0${dateArr[1]}`;
}
if ( Number(dateArr[2]) <= 9) {
dateArr[2] = `0${dateArr[2]}`;
}
return style.replace('yyyy', dateArr[0])
.replace('MM', dateArr[1])
.replace('dd', dateArr[2])
.replace('hh', dateArr[3])
.replace('mm', dateArr[4])
.replace('ss', dateArr[5]);
};
判断数据类型
Object.prototype.toString.call(null).slice(6, -1)
Object.prototype.toString.call(undefined).slice(6, -1)
Object.prototype.toString.call(0).slice(6, -1)
Object.prototype.toString.call(-1).slice(6, -1)
Object.prototype.toString.call(1).slice(6, -1)
Object.prototype.toString.call(1.1).slice(6, -1)
Object.prototype.toString.call([]).slice(6, -1)
Object.prototype.toString.call(Promise).slice(8, -1);
Object.prototype.toString.call(new Date()).slice(8, -1)