[ javascript ] 简易表单验证

只实现简单的表单验证。 

function checkRule(obj, key, rule) {
  return rule.valid ? rule.valid(obj[key]) : true
}

function validator(obj, rules) {
  for (let key in rules) {
    const rule = rules[key]
    // 如果为空
    if (obj[key] !== undefined && obj[key].length === 0) {
      return rule.empty || '请输入'
    }
    // 验证规则有效性
    if (!checkRule(obj, key, rule)) {
      return rule.error || '请输入正确的值'
    }
  }
}

测试:

const rules = {
  phone: {
    valid: value => /\d{11}/.test(value),
    empty: '请输入手机号',
    error: '请输入正确的手机号'
  },
  code: {
    valid: value => value.length === 4,
    empty: '请输入验证码',
    error: '请输入正确的验证码'
  }
}

const obj = { phone: '', code: '' }
console.log('test1:', validator(obj, rules))

obj.phone = '12323'
console.log('test2:', validator(obj, rules))

obj.phone = '13000000000'
console.log('test3:', validator(obj, rules))

obj.code = 'xz'
console.log('test4:', validator(obj, rules))

obj.code = 'xz22'
console.log('test5:', validator(obj, rules))

// 测试输出结果:

test1: 请输入手机号
test2: 请输入正确的手机号
test3: 请输入验证码
test4: 请输入正确的验证码
test5: undefined

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值