From fe91cc994c78b15bbc4e974e4d7c0eb1177a7a10 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 29 五月 2024 14:44:21 +0800
Subject: [PATCH] 页面整合

---
 src/utils/validate.js |  282 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 224 insertions(+), 58 deletions(-)

diff --git a/src/utils/validate.js b/src/utils/validate.js
index 691c604..e4cc5d5 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -1,89 +1,255 @@
 /**
- * Created by PanJiaChen on 16/11/18.
+ * 閭
+ * @param {*} s
  */
-
-/**
- * @param {string} path
- * @returns {Boolean}
- */
-export function isExternal (path) {
-  return /^(https?:|mailto:|tel:)/.test(path)
+export function isEmail (s) {
+  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
 }
 
 /**
- * @param {string} str
- * @returns {Boolean}
+ * 鎵嬫満鍙风爜
+ * @param {*} s
  */
-export function validUsername (str) {
-  // eslint-disable-next-line camelcase
+export function isMobile (s) {
+  return /^1[0-9]{10}$/.test(s)
+}
+
+/**
+ * 鐢佃瘽鍙风爜
+ * @param {*} s
+ */
+export function isPhone (s) {
+  return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
+}
+
+/**
+ * URL鍦板潃
+ * @param {*} s
+ */
+export function isURL (s) {
+  return /^http[s]?:\/\/.*/.test(s)
+}
+
+export function isvalidUsername (str) {
   const valid_map = ['admin', 'editor']
   return valid_map.indexOf(str.trim()) >= 0
 }
 
-/**
- * @param {string} url
- * @returns {Boolean}
- */
-export function validURL (url) {
-  const reg = /^(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 reg.test(url)
+/* 鍚堟硶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)
 }
 
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validLowerCase (str) {
+/* 灏忓啓瀛楁瘝 */
+export function validateLowerCase (str) {
   const reg = /^[a-z]+$/
   return reg.test(str)
 }
 
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validUpperCase (str) {
+/* 澶у啓瀛楁瘝 */
+export function validateUpperCase (str) {
   const reg = /^[A-Z]+$/
   return reg.test(str)
 }
 
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validAlphabets (str) {
+/* 澶у皬鍐欏瓧姣� */
+export function validatAlphabets (str) {
   const reg = /^[A-Za-z]+$/
   return reg.test(str)
 }
 
-/**
- * @param {string} email
- * @returns {Boolean}
- */
-export function validEmail (email) {
-  // eslint-disable-next-line no-useless-escape
-  const reg = /^(([^<>()\[\]\\.,;:\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 reg.test(email)
+/* 楠岃瘉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
 }
 
 /**
- * @param {string} str
- * @returns {Boolean}
+ * validate email
+ * @param email
+ * @returns {boolean}
  */
-export function isString (str) {
-  if (typeof str === 'string' || str instanceof String) {
-    return true
+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)
+}
+
+/**
+ * 鍒ゆ柇韬唤璇佸彿鐮�
+ */
+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
+        }
+      }
+    } else {
+      msg = '璇佷欢鍙风爜闀垮害涓嶄负18浣�'
+    }
+  } else {
+    msg = '璇佷欢鍙风爜涓嶈兘涓虹┖'
+  }
+  list.push(result)
+  list.push(msg)
+  return list
+}
+
+/**
+ * 鍒ゆ柇鎵嬫満鍙风爜鏄惁姝g‘
+ */
+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浣�'
+    }
+  } else {
+    msg = '鎵嬫満鍙风爜涓嶈兘涓虹┖'
+  }
+  list.push(result)
+  list.push(msg)
+  return list
+}
+
+/**
+ * 鍒ゆ柇濮撳悕鏄惁姝g‘
+ */
+export function validatename (name) {
+  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
+}
+
+/**
+ * 鍒ゆ柇鏄惁涓哄皬鏁�
+ */
+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
+}
+
+/**
+ * 鍒ゆ柇鏄惁涓虹┖
+ */
+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
   }
   return false
-}
-
-/**
- * @param {Array} arg
- * @returns {Boolean}
- */
-export function isArray (arg) {
-  if (typeof Array.isArray === 'undefined') {
-    return Object.prototype.toString.call(arg) === '[object Array]'
-  }
-  return Array.isArray(arg)
 }

--
Gitblit v1.8.0