js 自定义验证规则

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
	<script type="text/javascript">

	//var rules = [{ required: 10, message: '请填写数据' }, { minLength: 100, message: '数据不能超过多少' }]
    function isEmpty(obj) {
        if (typeof obj === 'undefined' || obj === null || obj === '' || JSON.stringify(obj) === '{}' || JSON.stringify(obj) === '[]') {
            return true
        }
        return false
    }
    function isNumber(data) {
        return typeof data === 'number' && !isNaN(data)
    }
    function isString(data) {
        return typeof data === 'string'
    }
    function _validateMethod() {
        const me = this
        return {
            required(data) {
                return !me.isEmpty(data)
            },
            minLength(data, min, isClose = false) {
                if (me.isNumber(data) || me.isString(data)) {
                    return isClose ? String(data).length >= min : String(data).length > min
                }
                return null
            }
        }
    }
    var methods = this._validateMethod();


    var rules = {
        region: [
            { required: true, message: '请输入数据' },
            { minLength: 3, message: '值不得大于10小于3' }
        ],
        date1: [
            { required: true, message: '请选择日期' }
        ]
    }

    function tests() {
        var strs = ['', '']
        bbq:
        for (var r = 0; r < Object.keys(rules).length; r++) {
            var name = Object.keys(rules)[r]
            objectName = rules[name]
            ccc:
            for (var j = 0; j < objectName.length; j++) {
                var ruleNameList = objectName[j]
                ddd:
                for (var n = 0; n < Object.keys(ruleNameList).length; n++) {
                    var ruleName = Object.keys(ruleNameList)[n]
                    if (ruleName != 'message') {

                        if (!methods[ruleName](strs[r], ruleNameList[ruleName])) {
                            console.log(ruleNameList['message'])
                            break ccc;
                        } else {

                        }

                    }

                }
            }
        }
    }
    tests()

</script>
</head>
<body>
222222222222222222
</body>
</html>

打印出来样式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值