访客模块待完成

This commit is contained in:
Zy
2026-04-11 17:55:11 +08:00
parent 67a292b252
commit d957d1a039
35 changed files with 4564 additions and 95 deletions

66
src/utils/Reg.ts Normal file
View File

@@ -0,0 +1,66 @@
/**
* 验证身份证号码18位支持尾号x/X
* @param idCard 身份证号
* @return {boolean} true 符合 false 不符合
*/
export function validateIdCard(idCard: string): boolean {
// 18位身份证正则
const reg = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/;
return reg.test(idCard.trim());
}
/**
* 验证车牌号
* @param val 兼容新能源 + 普通车牌
* @return {boolean} true 符合 false 不符合
*/
export function isPlateNumber(val: string): boolean {
const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
return reg.test(val);
}
/**
* 验证金钱
* @param {number} val
* @return {boolean} true 符合 false 不符合
*/
export function isMoney(value: number): boolean {
const reg = /^(0|[1-9]\d*)(\.\d{1,2})?$/;
return reg.test(String(value).trim());
}
/**
* 验证姓名
* @param {string} val
* @return {boolean} true 符合 false 不符合
*/
export function isChineseName(val: string): boolean {
return /^[\u4e00-\u9fa5·]{2,16}$/.test(String(val).trim());
}
const reg = {
/** 金钱 */
money: /^(0|[1-9]\d*)(\.\d{1,2})?$/,
/** 身份证 */
idCard: /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/,
/** 车牌 */
PlateNumber: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/,
/** 姓名 */
ChineseName: /^[\u4e00-\u9fa5·]{2,16}$/,
/** 手机号 */
phone: /^1[3-9]\d{9}$/,
/** 邮箱 */
email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
/** QQ */
qq: /^[1-9]\d{4,11}$/,
/** 微信 */
wechat: /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/
};
// 自动推导 TS 类型(最标准)
export type RegType = keyof typeof reg;
/**
* 验证姓名
* @param {string|number} value
* @param {string} regType
* @return {boolean} true 符合 false 不符合
*/
export function validator(value: string | number, regType: RegType): boolean {
return reg[regType].test(String(value));
}