几分钟几小时几天前,表单验证,数据处理(react+antd回调写法)

11 篇文章 0 订阅

表单验证

// 密码校验
export const validatePass = (rule, value) => {
    if (value === '') {
        return Promise.resolve();
    } else {
        if (!/^(?:\d+|[a-zA-Z]+|[.!@#$%^&*]+){6,12}$/.test(value)) {
            return Promise.reject("请输入6-12位密码");
        } else {
            return Promise.resolve();
        }
    }
}
// 纯数字
export const validateNumber = (rule, value) => {
    if (value != '') {
        if (!/^[1-9]\d*$/.test(value)) {
            return Promise.reject("只能输入纯数字");
        } else {
            return Promise.resolve();
        }
    } else {
        return Promise.resolve();
    }

}
// 金额
export const validatePrice = (rule, value) => {
    if (value != '' && value != undefined && value != null) {
        let num = parseFloat(value)
        if (isNaN(num)) {
            return Promise.reject("请输入有效金额");
        } else {
            return Promise.resolve();
        }
    } else {
        return Promise.resolve();
    }

}
// 不为空规则
export const validateEmpty = (rule, value) => {
    if (value === '' || value == null || value == undefined) {
        return Promise.reject("不能为空");
    } else {
        return Promise.resolve();
    }
}
// 不作为
export const validateNone = (rule, value) => {
    return Promise.resolve();
}
// 真实姓名
export const validateName = (rule, value) => {
    if (value === '' || !value) {
        return Promise.resolve();
    } else {
        if (!/^([\u4e00-\u9fa5]{1,20}|[a-zA-Z\.\s]{2,5})$/.test(value)) {
            return Promise.reject("请输入真实姓名");
        } else {
            return Promise.resolve();
        }
    }
}
// 身份证
export const validateIdCard = (rule, value) => {
    if (value != '' && value != undefined) {
        if (
            !/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
                value
            )
        ) {
            return Promise.reject("请输入有效身份证");
        } else {
            return Promise.resolve();
        }
    } else {
        return Promise.resolve();
    }
}
//手机号
export const validatePhone = (rule, value) => {
    if (value != '' && value != undefined) {
        if (!/^((\+|00)86)?((134\d{4})|((13[0-3|5-9]|14[1|5-9]|15[0-9]|16[2|5|6|7]|17[0-8]|18[0-9]|19[0-2|5-9])\d{8}))$/.test(value)) {
            return Promise.reject("请输入有效手机号");
        } else {
            return Promise.resolve();
        }
    } else {
        return Promise.resolve();
    }
}

数据处理

//几分钟 几小时 几天  前
export function formatMsgTime(timespan) {
    var dateTime = new Date(timespan);
    var year = dateTime.getFullYear();
    var month = dateTime.getMonth() + 1;
    var day = dateTime.getDate();
    var hour = dateTime.getHours();
    var minute = dateTime.getMinutes();
    var second = dateTime.getSeconds();
    var now = new Date();
    var now_new = Date.parse(now.toDateString()); //typescript转换写法
    var milliseconds = 0;
    var timeSpanStr;
    milliseconds = now_new - timespan;
    if (milliseconds <= 1000 * 60 * 1) {
        timeSpanStr = '刚刚';
    } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) {
        timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前';
    } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) {
        timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前';
    } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) {
        timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前';
    } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) {
        timeSpanStr = month + '-' + day + ' ' + hour + ':' + minute;
    } else {
        timeSpanStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute;
    }
    return timeSpanStr;
}

// 数据转化为百分比格式
export function toPercentage(val1, val2) {
    let pre = (val1 / val2) * 100
    if (pre > 1) {
        pre = parseInt(pre)
    } else {
        pre = pre.toFixed(1)
    }
    return pre
}
/**
 * 时间戳转换时间
 * @param {val} val - 时间戳.
 * @param {type} type- 
 * 1 (2019-1-12 15:21:22)
 * 2 (2019-1-12)
 * 3 (2-16 15:21)
 * 4 (2月6号 16:12:22)
 * 5 (2019-1-12 15:12)
 */
export function timeStamp(val, type = 1) {
    let now = new Date(val)
    let year = now.getFullYear()
    let month = now.getMonth() + 1
    let date = now.getDate()
    let hour = now.getHours()
    let minute = now.getMinutes()
    let second = now.getSeconds()
    // 补0显示判定
    month = month > 9 ? month : "0" + month
    date = date > 9 ? date : "0" + date
    hour = hour > 9 ? hour : "0" + hour
    minute = minute > 9 ? minute : "0" + minute
    second = second > 9 ? second : "0" + second
    // 显示格式类型
    let result1 =
        year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second
    let result2 = year + '-' + month + '-' + date
    let result3 = month + '-' + date + '  ' + hour + ':' + minute
    let result4 =
        month + '月' + date + '日  ' + hour + ':' + minute
    let result5 = year + '-' + month + '-' + date + ' ' + hour + ':' + minute
    let result6 = hour + ':' + minute
    switch (type) {
        case 1:
            return result1
        case 2:
            return result2
        case 3:
            return result3
        case 4:
            return result4
        case 5:
            return result5
        case 6 :
            return result6
    }
}
// 时间戳转换倒计时
export function overTime(val) {
    let date = parseInt((val / 1000 / 60 / 60 / 24) % 30)
    let hour = parseInt((val / 1000 / 60 / 60) % 24)
    let minute = parseInt((val / 1000 / 60) % 60)
    let second = parseInt((val / 1000) % 60)
    hour = hour > 9 ? hour : "0" + hour
    minute = minute > 9 ? minute : "0" + minute
    second = second > 9 ? second : "0" + second
    let result1 = date + '天' + hour + ':' + minute + ':' + second
    let result2 = hour + ':' + minute + ':' + second
    if (date > 1) {
        return result1
    } else {
        return result2
    }
}

//随机颜色
export function randomHexColor() { //随机生成十六进制颜色
    let hex = Math.floor(Math.random() * 16777216).toString(16); //生成ffffff以内16进制数
    while (hex.length < 6) { //while循环判断hex位数,少于6位前面加0凑够6位
        hex = '0' + hex;
    }
    return '#' + hex; //返回‘#'开头16进制颜色
}
// 提取纯文本
export function getSimpleText(html) {
    // if(arr!='[]'){
    //  for(let i in arr){
    //  	var reImg = new RegExp("<img.+?>");//图片
    //  	var msg = html.replace(reImg,arr[i]);//替换图片为表情编码
    //  }
    // }
    var re1 = new RegExp("<.+?>", "g"); //匹配html标签的正则表达式,"g"是搜索匹配多个符合的内容
    // var reImg = new RegExp("<img.+?>","g");//图片
    var msg = html.replace(re1, ''); //执行替换成空字符
    return msg;
}
// 解析search链接参数
export function getSearchObj(val) {
    let str = val.substr(1, val.length).replace(/&/g, "=");
    let arr = str.split("=");
    let obj = {}
    for (let i = 0; i < (arr.length / 2); i++) {
        obj[arr[2 * i]] = arr[2 * i + 1]
    }
    return obj
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值