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