From e1699c4851f6ca397cd0ad1ff63f32c737654836 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 02 Apr 2025 19:14:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/utils/validate.js | 356 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 178 insertions(+), 178 deletions(-)
diff --git a/src/utils/validate.js b/src/utils/validate.js
index cc55c08..d3b3f5e 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -3,15 +3,15 @@
*/
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)
}
/**
@@ -19,7 +19,7 @@
* @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)
}
/**
@@ -27,7 +27,7 @@
* @param {*} s
*/
export function isMobile(s) {
- return /^1[0-9]{10}$/.test(s);
+ return /^1[0-9]{10}$/.test(s)
}
/**
@@ -35,7 +35,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)
}
/**
@@ -43,40 +43,40 @@
* @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;
-};
+ 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
+}
/**
* validate email
@@ -84,178 +84,178 @@
* @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;
- }
- }
- } else {
- msg = '证件号码长度不为18位';
- }
- } else {
- msg = '证件号码不能为空';
- }
- list.push(result);
- list.push(msg);
- return list;
+ 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
}
/**
* 判断手机号码是否正确
*/
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;
+ 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
}
/**
* 判断姓名是否正确
*/
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;
- }
- 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
}
/**
@@ -264,22 +264,22 @@
* @returns {boolean} - 如果是对象或可解析的 JSON 字符串,返回 true;否则返回 false
*/
export function validatejson(val) {
- // 直接判断是否为对象(排除 null 和数组)
- if (val !== null && typeof val === 'object') {
- return true;
- }
+ // 直接判断是否为对象(排除 null 和数组)
+ if (val !== null && typeof val === 'object') {
+ return true
+ }
- // 尝试解析字符串为 JSON
- if (typeof val === 'string') {
- try {
- const obj = JSON.parse(val);
- // 解析后还需判断是否为对象或数组
- return obj !== null && typeof obj === 'object';
- } catch (e) {
- return false;
- }
- }
+ // 尝试解析字符串为 JSON
+ if (typeof val === 'string') {
+ try {
+ const obj = JSON.parse(val)
+ // 解析后还需判断是否为对象或数组
+ return obj !== null && typeof obj === 'object'
+ } catch (e) {
+ return false
+ }
+ }
- // 非对象、非数组、非字符串,或者字符串不是 JSON
- return false;
+ // 非对象、非数组、非字符串,或者字符串不是 JSON
+ return false
}
--
Gitblit v1.9.3