From a9ba7d19361f64edd583e346a2095a570e748f2f Mon Sep 17 00:00:00 2001 From: sijinhui Date: Tue, 20 Feb 2024 13:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=AE=A4=E8=AF=81=E5=92=8C?= =?UTF-8?q?=E5=B0=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(admin)/admin/usage-by-model-chart.tsx | 3 +- lib/auth_list.ts | 34 ++++++++++++------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/app/(admin)/admin/usage-by-model-chart.tsx b/app/app/(admin)/admin/usage-by-model-chart.tsx index 1727030c4..07add2401 100644 --- a/app/app/(admin)/admin/usage-by-model-chart.tsx +++ b/app/app/(admin)/admin/usage-by-model-chart.tsx @@ -14,8 +14,9 @@ interface ComponentProps { setCurrentDate: Dispatch>; } +const maxDate = new Date(); + function DateSelectComponent({ currentDate, setCurrentDate }: ComponentProps) { - const maxDate = new Date(); // 增加键盘监听修改日期 useEffect(() => { const keydownEvent = (e: KeyboardEvent) => { diff --git a/lib/auth_list.ts b/lib/auth_list.ts index 69f9a7a97..a9cd9650f 100644 --- a/lib/auth_list.ts +++ b/lib/auth_list.ts @@ -19,11 +19,13 @@ export function isHanZi(input: string): boolean { /** * 判断输入的一个字符串是不是拼音 * @param input 需要测试的字符串 - * @returns {boolean} + * @returns {number} 几个拼音 */ -export function isPinYin(input: string): boolean { - - var list = ['a', 'ai', 'an', 'ang', 'ao', 'ba', 'bai', 'ban', 'bang', 'bao', 'bei', 'ben', +export function isPinYin(input: string): number { + if (!input) { + return 0; + } + const list = ['a', 'ai', 'an', 'ang', 'ao', 'ba', 'bai', 'ban', 'bang', 'bao', 'bei', 'ben', 'beng', 'bi', 'bian', 'biao', 'bie', 'bin', 'bing', 'bo', 'bu', 'ca', 'cai', 'can', 'cang', 'cao', 'ce', 'cen', 'ceng', 'cha', 'chai', 'chan', 'chang', 'chao', 'che', 'chen', 'cheng', 'chi', 'chong', 'chou', 'chu', 'chua', 'chuai', 'chuan', 'chuang', 'chui', 'chun', 'chuo', 'ci', 'cong', @@ -52,28 +54,34 @@ export function isPinYin(input: string): boolean { 'you', 'yu', 'yuan', 'yue', 'yun', 'za', 'zai', 'zan', 'zang', 'zao', 'ze', 'zei', 'zen', 'zeng', 'zha', 'zhai', 'zhan', 'zhang', 'zhao', 'zhe', 'zhei', 'zhen', 'zheng', 'zhi', 'zhong', 'zhou', 'zhu', 'zhua', 'zhuai', 'zhuan', 'zhuang', 'zhui', 'zhun', 'zhuo', 'zi', 'zong', 'zou', 'zu', 'zuan', 'zui', 'zun', 'zuo']; - var lowerString = input.toLowerCase(); - var length = lowerString.length; - var index = -1; + let lowerString = input.toLowerCase(); + let length = lowerString.length; + let index = -1; for (var i=0; i index ? list.lastIndexOf(name) : index; } - + let result = 0 // 判断当前 lowerString 是不是拼音(lowerString 在 list 中就是;不在就不是) if (index >= 0) { + result += 1 var item = list[index]; + // 继续处理剩余字符串 lowerString = lowerString.substring(item.length); if (lowerString.length == 0) { - return true; } else { - return isPinYin(lowerString); - // return arguments.callee(lowerString); + const sub_py = isPinYin(lowerString) + if (sub_py) { + result += sub_py + } else { + result = 0 + } } } else { - return false; + result = 0 } + return result; } @@ -81,5 +89,5 @@ export function isName(input: string): boolean { if (DENY_LIST.includes(input)) { return false; } - return isEmail(input) || (input.length >= 2 && isHanZi(input)) || (input.length >= 4 && isPinYin(input)); + return isEmail(input) || (input.length >= 2 && isHanZi(input)) || (isPinYin(input) >= 2); }