From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/hooks/web/useValidator.ts | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/src/hooks/web/useValidator.ts b/src/hooks/web/useValidator.ts
new file mode 100644
index 0000000..151e35b
--- /dev/null
+++ b/src/hooks/web/useValidator.ts
@@ -0,0 +1,60 @@
+import { useI18n } from '@/hooks/web/useI18n'
+import { FormItemRule } from 'element-plus'
+
+const { t } = useI18n()
+
+interface LengthRange {
+ min: number
+ max: number
+ message?: string
+}
+
+export const useValidator = () => {
+ const required = (message?: string): FormItemRule => {
+ return {
+ required: true,
+ message: message || t('common.required')
+ }
+ }
+
+ const lengthRange = (options: LengthRange): FormItemRule => {
+ const { min, max, message } = options
+
+ return {
+ min,
+ max,
+ message: message || t('common.lengthRange', { min, max })
+ }
+ }
+
+ const notSpace = (message?: string): FormItemRule => {
+ return {
+ validator: (_, val, callback) => {
+ if (val?.indexOf(' ') !== -1) {
+ callback(new Error(message || t('common.notSpace')))
+ } else {
+ callback()
+ }
+ }
+ }
+ }
+
+ const notSpecialCharacters = (message?: string): FormItemRule => {
+ return {
+ validator: (_, val, callback) => {
+ if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) {
+ callback(new Error(message || t('common.notSpecialCharacters')))
+ } else {
+ callback()
+ }
+ }
+ }
+ }
+
+ return {
+ required,
+ lengthRange,
+ notSpace,
+ notSpecialCharacters
+ }
+}
--
Gitblit v1.8.0