微信小程序表单验证

心已赠人 2023-06-17 08:57 28阅读 0赞

由于微信小程序表单组件没有自带的验证功能,因此要针对每一项进行判断比较繁琐 因此封装了一个表单验证js, 具体验证规则根据自己所用到的进行添加,具体案例代码片段点击链接微信小程序表单验证完整代码片段
或者在微信小程序开发工具导入ID qGhpXdmZ7ydI

  1. const form = {
  2. /* @formData 要验证的表单数据 @rules 验证规则 required必填 ***/
  3. validation(formData, rules) {
  4. for (let item of rules) {
  5. let key = item.name;
  6. let ruleArr = item.rule;
  7. let msgArr = item.msg;
  8. if (!key || !ruleArr || ruleArr.length === 0 || !msgArr || msgArr.length === 0) continue
  9. for (let i = 0; i < ruleArr.length; i++) {
  10. let ruleItem = ruleArr[i];
  11. let msg = msgArr[i];
  12. if (!ruleItem || !msg) continue
  13. let value = null;
  14. if (ruleItem.indexOf(":") != -1) {
  15. let temp = ruleItem.split(":");
  16. ruleItem = temp[0];
  17. value = temp[1];
  18. }
  19. let isError = false;
  20. switch (ruleItem) {
  21. case "required":
  22. isError = form.isNull(formData[key]);
  23. break;
  24. case "isEmail":
  25. isError = !form.isEmail(formData[key]);
  26. break;
  27. case "isTel":
  28. isError = !form.isTel(formData[key]);
  29. break;
  30. case "isSpecialWord":
  31. isError = !form.isSpecialWord(formData[key]);
  32. break;
  33. case "minLength":
  34. isError = !form.minLength(formData[key], value)
  35. break;
  36. case "maxLength":
  37. isError = !form.maxLength(formData[key], value)
  38. break;
  39. default:
  40. break;
  41. }
  42. if (isError) {
  43. wx.showToast({
  44. title: msg,
  45. icon: 'none'
  46. })
  47. return false
  48. }
  49. }
  50. }
  51. return true;
  52. },
  53. isNull(value) {
  54. if (typeof value == 'object') {
  55. for (let prop in value) {
  56. if (typeof value[prop] == 'object') {
  57. for (let prop2 in value[prop]) {
  58. if (value[prop][prop2] === null || value[prop][prop2] === '' || value[prop][prop2] === undefined) {
  59. return true
  60. } else {
  61. return false
  62. }
  63. }
  64. }
  65. }
  66. }
  67. return (value === null || value === '' || value === undefined) ? true : false;
  68. },
  69. isEmail(value) {
  70. return /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){ 1,63}[a-z0-9]+$/.test(value);
  71. },
  72. isTel(value) {
  73. return /^(?:13\d|14\d|15\d|16\d|17\d|18\d|19\d)\d{ 5}(\d{ 3}|\*{ 3})$/.test(value);
  74. },
  75. isSpecialWord(value) {
  76. //是否包含特殊字符
  77. let regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/,
  78. regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/;
  79. return (regEn.test(value) || regCn.test(value)) ? false : true
  80. },
  81. minLength(value, min) {
  82. return value.length >= Number(min)
  83. },
  84. maxLength(value, max) {
  85. return value.length <= Number(max)
  86. }
  87. };
  88. module.exports = {
  89. validation: form.validation
  90. };

发表评论

表情:
评论列表 (有 0 条评论,28人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序验证

    由于微信小程序表单组件没有自带的验证功能,因此要针对每一项进行判断比较繁琐 因此封装了一个表单验证js, 具体验证规则根据自己所用到的进行添加,具体案例代码片段点击链接[微信小