| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- const ObjectId = require('mongoose').Types.ObjectId;
- const createError = require('http-errors');
- const moment = require('moment');
- /**
- * 验证ID
- */
- function validateId(id, errMsg) {
- errMsg = errMsg || 'ID错误!';
- if (!ObjectId.isValid(id)) {
- throw createError(400, errMsg);
- }
- }
- const phoneRegex = /^1[\d]{10}$/;
- function validatePhone(phone, errMsg) {
- errMsg = errMsg || '手机号格式错误'
- if (!phoneRegex.test(phone)) {
- throw createError(400, errMsg)
- }
- }
- const usernameRegex = /^[a-zA-Z0-9_\.]{5,}$/;
- function validateUsername(username, errMsg) {
- errMsg = errMsg || '用户名格式错误'
- if (!usernameRegex.test(username)) {
- throw createError(400, errMsg)
- }
- }
- const passwordRegex = /^.{8,}$/
- function validatePassword(password, errMsg) {
- errMsg = errMsg || '密码格式错误'
- if (!passwordRegex.test(password)) {
- throw createError(400, errMsg)
- }
- }
- function validateName(name, errMsg) {
- if (!name || name.length < 2) {
- throw createError(400, errMsg || '名字最少两位')
- }
- }
- const idNoRegex = /^[\d]{17}[\dx]$/i
- function validateIdNo(no, errMsg) {
- if (!idNoRegex.test(no))
- throw createError(400, '身份证格式错误');
- }
- let vinRegex = /^[A-HJ-NPR-Z0-9]{17}$/;
- function validateVIN(vin) {
- if (!vinRegex.test(vin))
- throw createError(400, 'vin错误')
- }
- let DATE_FORMAT = ['YYYYMMDD', 'YYYY-MM-DD', 'YYYY/MM/DD'];
- function validateDate(date) {
- let mmt = moment(date, DATE_FORMAT, true);
- if (!mmt.isValid()) throw createError(400, '日期格式错误')
- let startOfDay = mmt.startOf('day').toDate();
- let endOfDay = mmt.endOf('day').toDate();
- return [startOfDay, endOfDay];
- }
- function isValidDate(d) {
- return d instanceof Date && !isNaN(d);
- }
- module.exports = {
- validateId,
- validatePhone,
- validateName,
- validateIdNo,
- validateVIN,
- validateDate,
- validatePassword,
- validateUsername,
- isValidDate,
- }
|