You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
866 B

  1. import { reactive } from "vue";
  2. import type { FormRules } from "element-plus";
  3. import { $t, transformI18n } from "@/plugins/i18n";
  4. /** 密码正则(密码格式应为8-18位数字、字母、符号的任意两种组合) */
  5. export const REGEXP_PWD =
  6. /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){8,18}$/;
  7. /** 登录校验 */
  8. const loginRules = reactive(<FormRules>{
  9. password: [
  10. {
  11. validator: (rule, value, callback) => {
  12. if (value === "") {
  13. callback(new Error(transformI18n($t("login.purePassWordReg"))));
  14. } else if (!REGEXP_PWD.test(value)) {
  15. callback(new Error(transformI18n($t("login.purePassWordRuleReg"))));
  16. } else {
  17. callback();
  18. }
  19. },
  20. trigger: "blur"
  21. }
  22. ]
  23. });
  24. export { loginRules };