From 90c20a501209a51d85f6376f995af3336d77d144 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 18 Oct 2022 13:37:10 +0800
Subject: [PATCH] 数字验证是否大于999999999或长度大于9

---
 src/util/validate.js |  392 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 225 insertions(+), 167 deletions(-)

diff --git a/src/util/validate.js b/src/util/validate.js
index 25ca75c..14cdc71 100644
--- a/src/util/validate.js
+++ b/src/util/validate.js
@@ -3,21 +3,22 @@
  */
 
 export function isvalidUsername(str) {
-    const valid_map = ['admin', 'editor']
-    return valid_map.indexOf(str.trim()) >= 0
+  const valid_map = ['admin', 'editor']
+  return valid_map.indexOf(str.trim()) >= 0
 }
 
 /* 合法uri*/
 export function validateURL(textval) {
-    const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
-    return urlregex.test(textval)
+  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
+  return urlregex.test(textval)
 }
+
 /**
  * 邮箱
  * @param {*} s
  */
 export function isEmail(s) {
-    return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
+  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
 }
 
 /**
@@ -25,7 +26,7 @@
  * @param {*} s
  */
 export function isMobile(s) {
-    return /^1[0-9]{10}$/.test(s)
+  return /^1[0-9]{10}$/.test(s)
 }
 
 /**
@@ -33,7 +34,7 @@
  * @param {*} s
  */
 export function isPhone(s) {
-    return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
+  return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
 }
 
 /**
@@ -41,227 +42,284 @@
  * @param {*} s
  */
 export function isURL(s) {
-    return /^http[s]?:\/\/.*/.test(s)
+  return /^http[s]?:\/\/.*/.test(s)
 }
 
 /* 小写字母*/
 export function validateLowerCase(str) {
-    const reg = /^[a-z]+$/
-    return reg.test(str)
+  const reg = /^[a-z]+$/
+  return reg.test(str)
 }
 
 /* 大写字母*/
 export function validateUpperCase(str) {
-    const reg = /^[A-Z]+$/
-    return reg.test(str)
+  const reg = /^[A-Z]+$/
+  return reg.test(str)
 }
 
 /* 大小写字母*/
 export function validatAlphabets(str) {
-    const reg = /^[A-Za-z]+$/
-    return reg.test(str)
+  const reg = /^[A-Za-z]+$/
+  return reg.test(str)
 }
+
 /*验证pad还是pc*/
-export const vaildatePc = function() {
-        const userAgentInfo = navigator.userAgent;
-        const Agents = ["Android", "iPhone",
-            "SymbianOS", "Windows Phone",
-            "iPad", "iPod"
-        ];
-        let flag = true;
-        for (var v = 0; v < Agents.length; v++) {
-            if (userAgentInfo.indexOf(Agents[v]) > 0) {
-                flag = false;
-                break;
-            }
-        }
-        return flag;
+export const vaildatePc = function () {
+  const userAgentInfo = navigator.userAgent;
+  const Agents = ["Android", "iPhone",
+    "SymbianOS", "Windows Phone",
+    "iPad", "iPod"
+  ];
+  let flag = true;
+  for (var v = 0; v < Agents.length; v++) {
+    if (userAgentInfo.indexOf(Agents[v]) > 0) {
+      flag = false;
+      break;
     }
-    /**
-     * validate email
-     * @param email
-     * @returns {boolean}
-     */
+  }
+  return flag;
+}
+
+/**
+ * validate email
+ * @param email
+ * @returns {boolean}
+ */
 export function validateEmail(email) {
-    const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
-    return re.test(email)
+  const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+  return re.test(email)
 }
 
 /**
  * 判断身份证号码
  */
 export function cardid(code) {
-    let list = [];
-    let result = true;
-    let msg = '';
-    var city = {
-        11: "北京",
-        12: "天津",
-        13: "河北",
-        14: "山西",
-        15: "内蒙古",
-        21: "辽宁",
-        22: "吉林",
-        23: "黑龙江 ",
-        31: "上海",
-        32: "江苏",
-        33: "浙江",
-        34: "安徽",
-        35: "福建",
-        36: "江西",
-        37: "山东",
-        41: "河南",
-        42: "湖北 ",
-        43: "湖南",
-        44: "广东",
-        45: "广西",
-        46: "海南",
-        50: "重庆",
-        51: "四川",
-        52: "贵州",
-        53: "云南",
-        54: "西藏 ",
-        61: "陕西",
-        62: "甘肃",
-        63: "青海",
-        64: "宁夏",
-        65: "新疆",
-        71: "台湾",
-        81: "香港",
-        82: "澳门",
-        91: "国外 "
-    };
-    if (!validatenull(code)) {
-        if (code.length == 18) {
-            if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
-                msg = "证件号码格式错误";
-            } else if (!city[code.substr(0, 2)]) {
-                msg = "地址编码错误";
-            } else {
-                //18位身份证需要验证最后一位校验位
-                code = code.split('');
-                //∑(ai×Wi)(mod 11)
-                //加权因子
-                var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
-                //校验位
-                var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
-                var sum = 0;
-                var ai = 0;
-                var wi = 0;
-                for (var i = 0; i < 17; i++) {
-                    ai = code[i];
-                    wi = factor[i];
-                    sum += ai * wi;
-                }
-                if (parity[sum % 11] != code[17]) {
-                    msg = "证件号码校验位错误";
-                } else {
-                    result = false;
-                }
-
-            }
+  let list = [];
+  let result = true;
+  let msg = '';
+  var city = {
+    11: "北京",
+    12: "天津",
+    13: "河北",
+    14: "山西",
+    15: "内蒙古",
+    21: "辽宁",
+    22: "吉林",
+    23: "黑龙江 ",
+    31: "上海",
+    32: "江苏",
+    33: "浙江",
+    34: "安徽",
+    35: "福建",
+    36: "江西",
+    37: "山东",
+    41: "河南",
+    42: "湖北 ",
+    43: "湖南",
+    44: "广东",
+    45: "广西",
+    46: "海南",
+    50: "重庆",
+    51: "四川",
+    52: "贵州",
+    53: "云南",
+    54: "西藏 ",
+    61: "陕西",
+    62: "甘肃",
+    63: "青海",
+    64: "宁夏",
+    65: "新疆",
+    71: "台湾",
+    81: "香港",
+    82: "澳门",
+    91: "国外 "
+  };
+  if (!validatenull(code)) {
+    if (code.length == 18) {
+      if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
+        msg = "证件号码格式错误";
+      } else if (!city[code.substr(0, 2)]) {
+        msg = "地址编码错误";
+      } else {
+        //18位身份证需要验证最后一位校验位
+        code = code.split('');
+        //∑(ai×Wi)(mod 11)
+        //加权因子
+        var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
+        //校验位
+        var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
+        var sum = 0;
+        var ai = 0;
+        var wi = 0;
+        for (var i = 0; i < 17; i++) {
+          ai = code[i];
+          wi = factor[i];
+          sum += ai * wi;
+        }
+        if (parity[sum % 11] != code[17]) {
+          msg = "证件号码校验位错误";
         } else {
-            msg = "证件号码长度不为18位";
+          result = false;
         }
 
+      }
     } else {
-        msg = "证件号码不能为空";
+      msg = "证件号码长度不为18位";
     }
-    list.push(result);
-    list.push(msg);
-    return list;
+
+  } else {
+    msg = "证件号码不能为空";
+  }
+  list.push(result);
+  list.push(msg);
+  return list;
 }
+
 /**
  * 判断手机号码是否正确
  */
 export function isvalidatemobile(phone) {
-    let list = [];
-    let result = true;
-    let msg = '';
-    var isPhone = /^0\d{2,3}-?\d{7,8}$/;
-    //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
-    if (!validatenull(phone)) {
-        if (phone.length == 11) {
-            if (isPhone.test(phone)) {
-                msg = '手机号码格式不正确';
-            } else {
-                result = false;
-            }
-        } else {
-            msg = '手机号码长度不为11位';
-        }
+  let list = [];
+  let result = true;
+  let msg = '';
+  var isPhone = /^0\d{2,3}-?\d{7,8}$/;
+  //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
+  if (!validatenull(phone)) {
+    if (phone.length == 11) {
+      if (isPhone.test(phone)) {
+        msg = '手机号码格式不正确';
+      } else {
+        result = false;
+      }
     } else {
-        msg = '手机号码不能为空';
+      msg = '手机号码长度不为11位';
     }
-    list.push(result);
-    list.push(msg);
-    return list;
+  } else {
+    msg = '手机号码不能为空';
+  }
+  list.push(result);
+  list.push(msg);
+  return list;
 }
+
 /**
  * 判断姓名是否正确
  */
 export function validatename(name) {
-    var regName = /^[\u4e00-\u9fa5]{2,4}$/;
-    if (!regName.test(name)) return false;
-    return true;
+  var regName = /^[\u4e00-\u9fa5]{2,4}$/;
+  if (!regName.test(name)) return false;
+  return true;
 }
+
 /**
  * 判断是否为整数
  */
 export function validatenum(num, type) {
-    let regName = /[^\d.]/g;
-    if (type == 1) {
-        if (!regName.test(num)) return false;
-    } else if (type == 2) {
-        regName = /[^\d]/g;
-        if (!regName.test(num)) return false;
-    }
-    return true;
+  let regName = /[^\d.]/g;
+  if (type == 1) {
+    if (!regName.test(num)) return false;
+  } else if (type == 2) {
+    regName = /[^\d]/g;
+    if (!regName.test(num)) return false;
+  }
+  return true;
 }
+
 /**
  * 判断是否为小数
  */
 export function validatenumord(num, type) {
-    let regName = /[^\d.]/g;
-    if (type == 1) {
-        if (!regName.test(num)) return false;
-    } else if (type == 2) {
-        regName = /[^\d.]/g;
-        if (!regName.test(num)) return false;
-    }
-    return true;
+  let regName = /[^\d.]/g;
+  if (type == 1) {
+    if (!regName.test(num)) return false;
+  } else if (type == 2) {
+    regName = /[^\d.]/g;
+    if (!regName.test(num)) return false;
+  }
+  return true;
 }
+
 /**
  * 判断是否为空
  */
 export function validatenull(val) {
-    if (typeof val == 'boolean') {
-        return false;
-    }
-    if (typeof val == 'number') {
-        return false;
-    }
-    if (val instanceof Array) {
-        if (val.length == 0) return true;
-    } else if (val instanceof Object) {
-        if (JSON.stringify(val) === '{}') return true;
-    } else {
-        if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
-        return false;
-    }
+  if (typeof val == 'boolean') {
     return false;
+  }
+  if (typeof val == 'number') {
+    return false;
+  }
+  if (val instanceof Array) {
+    if (val.length == 0) return true;
+  } else if (val instanceof Object) {
+    if (JSON.stringify(val) === '{}') return true;
+  } else {
+    if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
+    return false;
+  }
+  return false;
 }
 
 /**
- * 限制数字输入
+ * 限制输入为正整数
  * @param rule
  * @param value
  * @param callback
  */
-export const limitNum = (rule, value, callback) => {
-    if (value>9999999999){
-      callback(new Error("限制为9999999999以内"));
-    }else {
-      callback();
+const limitNumInt = (rule, value, callback) => {
+  var reg = /^[1-9]\d*$/
+  if (rule.required) {
+    if (value) {
+      if (!reg.test(value)) {
+        callback(new Error("请输入正整数"))
+      } else {
+        if (value > 999999999) {
+          callback(new Error("请输入999999999以内的数"))
+        } else {
+          callback()
+        }
+      }
+    } else {
+      callback(new Error("请输入正整数"))
     }
+  } else {
+    if (value) {
+      if (!reg.test(value)) {
+        callback(new Error("请输入正整数"))
+      } else {
+        if (value > 999999999) {
+          callback(new Error("请输入999999999以内的数"))
+        } else {
+          callback()
+        }
+      }
+    } else {
+      callback()
+    }
+  }
 };
+
+const limitNumLength = (rule, value, callback) => {
+  if (rule.required) {
+    if (value) {
+      if (value.toString().length > 9) {
+        callback(new Error("限制输入位数为9位"))
+      } else {
+        callback()
+      }
+    } else {
+      callback(new Error("请输入数字"))
+    }
+  } else {
+    if (value) {
+      if (value.toString().length > 9) {
+        callback(new Error("限制输入位数为9位"))
+      } else {
+        callback()
+      }
+    } else {
+      callback()
+    }
+  }
+}
+  export {limitNumInt,limitNumLength}

--
Gitblit v1.9.3