test.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 'use strict';
  2. const {comoRules,validate} = require('./src/main');
  3. let rule = {
  4. username:comoRules.getInstance().name('用户名称').required().notEmpty().trim(),
  5. password:comoRules.getInstance().name('用户密码').required().notEmpty().minLength(6).maxLength(20).extend((field,value,row) => {
  6. row[field] = JSON.stringify({test:value});
  7. }),
  8. sex:comoRules.getInstance().name('性别').inArray(['男','女']),
  9. extends:comoRules.getInstance().name('扩展字段').required().isJson().extend((field,value,row) => {
  10. row[field] = JSON.parse(value);
  11. })
  12. // username:comoRules.getInstance().name('用户名').required().min_length(2).max_length(20).chinese(),
  13. // password:comoRules.getInstance().name('密码').required().min_length(6).max_length(20).letter_number(),
  14. // sex:comoRules.getInstance().name('性别').in_array(['男','女']),
  15. // extends:comoRules.getInstance().name('扩展信息').required(),
  16. // born:comoRules.getInstance().name('出生日期').required().date(),
  17. // password1:comoRules.getInstance().required().ref('password','两次密码必须一致'),
  18. // idcard:comoRules.getInstance().id_card('身份证号码错误'),
  19. // email:comoRules.getInstance().email('邮箱格式错误'),
  20. // qq:comoRules.getInstance().qq('qq号码错误').number(),
  21. // login_ip:comoRules.getInstance().ip('ip地址格式错误'),
  22. // phone:comoRules.getInstance().phone('手机号码错误'),
  23. // web_url:comoRules.getInstance().name('网站地址').required().url(),
  24. // info:comoRules.getInstance().name('详情').object(),
  25. // nickname:comoRules.getInstance().name('呢称').letter(),
  26. // datetest:comoRules.getInstance().name('测试数字和字母').required().letter_number(),
  27. // age:comoRules.getInstance().name('年龄').min(6).max(13)
  28. }
  29. let data = {
  30. password:'szjcomo',sex:'男',extends:'xxx',born:'2017-01-01',
  31. password1:'xxx',idcard:'xxx',email:'dfafd@qq.com',qq:'123456',
  32. login_ip:'127.0.0.1',phone:'xxx',web_url:'http://www.baidu.com',info:{name:'hello'},
  33. nickname:'abcd',datetest:'ab123c',age:7,username:' szjcomo ',extends:'{"uname":"szjcomo","age":18}'
  34. };
  35. const valid = async function(rule,data) {
  36. try {
  37. let res = await validate(rule,data);
  38. console.log('result:',res);
  39. } catch(err) {
  40. console.log(err.message)
  41. }
  42. }
  43. valid(rule,data);