ts封装格式化时间-手机号校验-邮箱校验-身份证校验-信息脱敏-密码强度检测
class Tools {
isEmptyStr(input) {
if (input === null || input === undefined || input === '') {
return true;
}
return false;
}
interfacePropertyToString = (property: (object: any) => void) => {
const chaine = property.toString();
const arr = chaine.match(/[\s\S]*{[\s\S]*\.([^\.; ]*)[ ;\n]*}/);
return arr[1];
};
timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {
if (!dateTime) dateTime = Number(new Date());
if (dateTime.toString().length === 10) dateTime *= 1000;
const date = new Date(dateTime);
let ret;
const opt = {
'y+': date.getFullYear().toString(),
'm+': (date.getMonth() + 1).toString(),
'd+': date.getDate().toString(),
'h+': date.getHours().toString(),
'M+': date.getMinutes().toString(),
's+': date.getSeconds().toString(),
};
for (const k in opt) {
ret = new RegExp(`(${
k})`).exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')));
}
}
return fmt;
}
isPhone(phoneStr) {
const myreg = /^((13[0-9])|(14[1|4|5|6|7|8|9])|(15([0|1|2|3|5|6|7|8|9]))|(16[2|5|6|7])|(17[0|1|2|3|5|6|7|8])|(18[0-9])|(19[1|8|9]))\d{8}$/;
if (!myreg.test(phoneStr)) {
return false;
}
return true;
}
isCard(cardStr) {
const myreg = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X]|[x])$/;
if (!myreg.test(cardStr)) {
return false;
}
return true;
}
isEmail(emailStr) {
console.log(emailStr);
const myreg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
if (!myreg.test(emailStr)) {
return false;
}
return true;
}
idcardDesensitization(cardStr = '', phoneStr = '', name = '', emailStr = '', Accountname = '') {
let star = '*';
const len = cardStr.toString().length - 4;
for (let i = 1; i < len; i++) {
star += '*';
}
return {
userName: name.replace(/.(?=.)/g, '*'),
mobile: `${
phoneStr.substring(0, 3)}****${
phoneStr.substring(7, 11)}`,
idCard: star + cardStr.substring(14, 18),
Accountname: Accountname.replace(/.(?=.)/g, '*'),
email: `${
emailStr.substr(0, 2)}****${
emailStr.substr(emailStr.indexOf('@'))}`,
};
}
passwordStrength(oValue) {
oValue = oValue.replace(/[\u4E00-\u9FA5]/g, '');
if (/\d/.test(oValue) && /[a-z]/.test(oValue) && /[A-Z]/.test(oValue)) {
return {
type: '2',
text: '强',
};
} if (
/^\d+$/.test(oValue)
|| /^[A-Z]+$/.test(oValue)
|| /^[a-z]+$/.test(oValue)
) {
return {
type: '0',
text: '弱',
};
}
return {
type: '1',
text: '中',
};
}
}
const tools = new Tools();
export default tools;