123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // async-validator rules
- // to view at https://github.com/yiminghe/async-validator
- const username = [
- {
- required: true,
- pattern: /^[a-zA-Z0-9][a-zA-Z0-9_]{2,19}$/,
- message: "用户名必须以字母或数字开头,长度为3-20位,允许字母数字下划线",
- trigger: "change",
- },
- ];
- const commonCode = ({ prop, min = 3, max = 20 }) => {
- return [
- {
- required: true,
- pattern: new RegExp(`^[a-zA-Z0-9_]{${min},${max}}$`),
- message: `${prop}只能由数字、字母和下划线组成,长度${min}-${max}个字符`,
- trigger: "change",
- },
- ];
- };
- const email = [
- {
- required: true,
- type: "email",
- message: "邮箱格式不正确",
- trigger: "change",
- },
- ];
- const password = [
- {
- required: true,
- pattern: /^[a-zA-Z0-9_]{6,20}$/,
- message: "密码只能由数字、字母和下划线组成,长度6-20个字符",
- trigger: "change",
- },
- ];
- const phone = [
- {
- required: true,
- pattern: /^1\d{10}$/,
- message: "请输入合适的手机号码",
- trigger: "change",
- },
- ];
- const smscode = [
- {
- required: true,
- pattern: /^[a-zA-Z0-9]{4}$/,
- message: "请输入4位短信验证码",
- trigger: "change",
- },
- ];
- const numberValidator = ({ prop, min = 1, max = 100 }) => {
- return [
- {
- required: true,
- validator: (rule, value, callback) => {
- if (!value && value !== 0) {
- return callback(new Error(`请输入${prop}`));
- }
- if (!Number.isInteger(value)) {
- callback(new Error("请输入数字值"));
- } else {
- if (value < min || value > max) {
- callback(new Error(`${prop}的大小只能介于${min}-${max}之间。`));
- } else {
- callback();
- }
- }
- },
- trigger: "change",
- },
- ];
- };
- // 正反斜杠限制输入
- const slashesLimitValidator = [
- {
- validator: (rule, value, callback) => {
- if (value.match(/[\\/]/g)) {
- callback(new Error("禁止输入正斜杠和反斜杠"));
- } else {
- callback();
- }
- },
- },
- ];
- export {
- username,
- commonCode,
- email,
- password,
- phone,
- smscode,
- numberValidator,
- slashesLimitValidator,
- };
|