From c035ffc6cd17acf46eb8bd90fc0578803227ffb0 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 07 六月 2024 15:00:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
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