@54sh/csu-info-validator
v0.1.1
Published
A personal information validator for Central South University
Downloads
50
Readme
CSU Info Validator
中南大学个人信息验证
安装
通过npm安装
$ npm install @54sh/csu-info-validator --save使用
Validator - 校验器模块
初始化
import { CSUValidator } from '@54sh/csu-info-validator'
const config = {
name: [
'required'
],
csuid: [
'required',
'CSUID'
],
phone: [
'required',
'phone'
],
klass: [
'required',
'fullClassNumber'
]
}
const validator = CSUValidator(config)config - 校验规则
初始化时,校验规则中每个规则均为 String 类型
| 规则 | 含义 | 判据 |
| --------------- | ---------------- | ------------------------------------------------------------ |
| required | 必填 | 不能为 undefined 、 null 或空字符串 |
| notZero | 不为0 | 不能为数字量 0 或字符串量 '0' |
| CSUID | 学号 | 必须为9位或10位如果含有字母Y,必须在第7位上如果含有字母L,必须在第1位上 |
| fullClassNumber | 完整数字班级 | 必须包含年级与班级共4位数字,可以是T班 |
| phone | 中国大陆手机号码 | 必须为1开头的11位数字序列 |
| email | 电子邮箱地址 | 必须包括用户名、@符号和域名 |
校验数据
待校验数据需为 object 类型
const data = {
name: 'Alice',
csuid: '820123456700',
phone: '13012345678',
klass: 'T1234'
}
const result = validator.validate(data)
console.log('result: ', result)
输出结果:
result: { status: false, errors: [ { field: 'CSUID', rule: 'CSUID' } ] }校验结果
校验结果结构如下
| 字段 | 必填 | 类型 | 含义 |
| ------ | ---- | --------------- | -------------------- |
| status | 是 | boolean | 校验内容是否合法 |
| errors | 否 | array<object> | 非法字段以及非法规则 |
其中errors字段中单个值结构如下
| 字段 | 含义 | | ----- | ------------------ | | field | 非法字段名称 | | rule | 非法字段的非法规则 |
Constant - 常量模块
常量模块分为三部分:学院专业 CSUSchoolsAndMajors 、民族 nations 以及政治面貌 politicCountenance
引入
import {CSUSchoolsAndMajors, nations, politicCountenance} from '@54sh/csu-info-validator'调用
CSUSchoolsAndMajors模块
CSUSchoolsAndMajors.completeData类型:
Array<Object>全部学院与专业列表,结构如下
| 字段名 | 类型 | 含义 | | ------ | --------------- | -------- | | name |
String| 学院名称 | | majors |Array<String>| 专业列表 |CSUSchoolsAndMajors.schools类型:
Array<String>全部学院与专业
截至2021年9月
全部学院与专业如下表
| 学院 | 下设专业 | | ---- | -------- | | 商学院 | 国际经济与贸易金融学信息管理与信息系统工商管理会计学 | | 公共管理学院 | 行政管理劳动与社会保障哲学社会学学科教育(英语) | | 法学院 | 法学 | | 马克思主义学院 | 思想政治教育 | | 文学与新闻传播学院 | 汉语言文学数字出版广播电视学 | | 外国语学院 | 英语法语日语西班牙语 | | 体育教研部 | 运动训练 | | 建筑与艺术学院 | 视觉传达设计环境设计产品设计音乐表演舞蹈表演建筑学城乡规划 | | 数学与统计学院 | 数学与应用数学信息与计算科学统计学 | | 物理与电子学院 | 应用物理学光电信息科学与工程电子信息科学与技术 | | 化学化工学院 | 应用化学化学工程与工艺制药工程 | | 冶金与环境学院 | 环境工程冶金工程新能源材料与器件 | | 资源加工与生物工程学院 | 生物工程生物技术无机非金属材料工程矿物加工工程 | | 材料科学与工程学院 | 材料科学与工程 | | 粉末冶金研究院 | 材料化学高分子材料与工程粉体材料科学与工程 | | 地球科学与信息物理学院 | 地理信息科学遥感科学与技术测绘工程地质工程资源勘查工程地球物理学 | | 土木工程学院 | 土木工程铁道工程工程力学消防工程工程管理 | | 资源与安全工程学院 | 采矿工程城市地下空间工程安全工程 | | 交通运输工程学院 | 交通运输交通设备与控制工程物流工程轨道交通信号与控制 | | 机电工程学院 | 机械设计制造及其自动化车辆工程微电子科学与工程 | | 能源科学与工程学院 | 能源与动力工程新能源科学与工程建筑环境与能源应用工程 | | 自动化学院 | 电气工程及其自动化自动化测控技术与仪器电子信息工程智能科学与技术 | | 计算机学院 | 计算机科学与技术信息安全物联网工程通信工程数据科学与大数据技术软件工程 | | 基础医学院 | 生物医学工程基础医学法医学 | | 航空航天学院 | 航空航天工程探测制导与控制技术 | | 湘雅医学院 | 临床医学(八年制)麻醉学精神医学医学检验技术临床医学(五年制) | | 湘雅口腔医学院 | 口腔医学(5+3)口腔医学(五年制) | | 湘雅药学院 | 临床药学药学 | | 湘雅护理学院 | 护理学 | | 生命科学学院 | 生物科学生物信息学 | | 湘雅公共卫生学院 | 预防医学 |
CSUSchoolsAndMajors.getMajors(school)返回值类型:
Array<String>根据学院名返回专业列表
nations模块
nations.completeData类型:
Array<String>全部56个民族以及”其他“选项
截至2021年9月
民族列表如下表(无先后顺序)
| 民族名称 | 民族名称 | 民族名称 | 民族名称 | 民族名称 | | ---- | ---- | ---- | ---- | ---- | | 汉族 | 满族 | 蒙古族 | 回族 | 藏族 | | 维吾尔族 | 苗族 | 彝族 | 壮族 | 布依族 | | 侗族 | 瑶族 | 白族 | 土家族 | 哈尼族 | | 哈萨克族 | 傣族 | 黎族 | 傈僳族 | 佤族 | | 畲族 | 高山族 | 拉祜族 | 水族 | 东乡族 | | 纳西族 | 景颇族 | 柯尔克孜族 | 土族 | 达斡尔族 | | 仫佬族 | 羌族 | 布朗族 | 撒拉族 | 毛南族 | | 仡佬族 | 锡伯族 | 阿昌族 | 普米族 | 朝鲜族 | | 塔吉克族 | 怒族 | 乌孜别克族 | 俄罗斯族 | 鄂温克族 | | 德昂族 | 保安族 | 裕固族 | 京族 | 塔塔尔族 | | 独龙族 | 鄂伦春族 | 赫哲族 | 门巴族 | 珞巴族 | | 基诺族 | 其他 | | | |
politicCountenance模块
politicCountenance.commonData类型:
Array<String>精简版政治面貌,包括中共党员、中共预备党员、共青团员、群众以及其他五个选项
politicCountenance.completeData类型:
Array<String>截至2021年9月
完整版政治面貌,包括详细民主党派,具体如下表
| 政治面貌 | 政治面貌 | 政治面貌 | 政治面貌 | | ---------- | ------------ | ------------ | -------- | | 中共党员 | 中共预备党员 | 共青团员 | 群众 | | 民革党员 | 民盟盟员 | 民建会员 | 民进会员 | | 农工党党员 | 致公党党员 | 九三学社社员 | 台盟盟员 | | 无党派人士 | | | |
