|
|
@@ -129,6 +129,8 @@ export function isPassword(rule, value, callback) {
|
|
|
callback(new Error('密码需由至少8位大小写字母、数字及符号组成'))
|
|
|
} else if (checkPasswordContain(value)) {
|
|
|
callback(new Error('密码不可包含常用复数数字或指定简易密码'))
|
|
|
+ } else if (hasYearInRange(value)) {
|
|
|
+ callback(new Error('密码不可包含1900-2025区间的年份数字'))
|
|
|
} else {
|
|
|
callback()
|
|
|
}
|
|
|
@@ -136,7 +138,7 @@ export function isPassword(rule, value, callback) {
|
|
|
|
|
|
function checkPasswordContain(value) {
|
|
|
const blackList = ['123456', '654321', '123456!', '654321!', 'Xiaoai@2024', 'idea@',
|
|
|
- '000', '111', '222', '333', '444', '555', '666', '777', '888', '999']
|
|
|
+ '000', '111', '222', '333', '444', '555', '666', '777', '888', '999', '123', '456', '789']
|
|
|
|
|
|
for (let i = 0; i < blackList.length; i++) {
|
|
|
if (value.indexOf(blackList[i]) > -1) return true
|
|
|
@@ -145,6 +147,18 @@ function checkPasswordContain(value) {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * 修复版:检测字符串中是否包含1900-2025区间的数字(无论前后是否有其他字符)
|
|
|
+ * @param {string} inputStr - 需要检测的字符串
|
|
|
+ * @returns {boolean} 包含则返回true,否则返回false
|
|
|
+ */
|
|
|
+function hasYearInRange(inputStr) {
|
|
|
+ // 移除边界匹配,确保即使年份前后有其他字符也能被检测到
|
|
|
+ // 正则含义:1900-1999 或 2000-2019 或 2020-2025
|
|
|
+ const yearRegex = /(19\d{2}|20[0-1]\d|202[0-5])/
|
|
|
+ return yearRegex.test(inputStr)
|
|
|
+}
|
|
|
+
|
|
|
/* 自动检验数值的范围*/
|
|
|
export function checkMax20000(rule, value, callback) {
|
|
|
if (value === '' || value === undefined || value === null) {
|