长度限制

This commit is contained in:
lyp 2025-07-31 15:44:39 +08:00
parent 1b170f2bbc
commit f186c37dd7

View File

@ -656,36 +656,20 @@ export default function ProjNew() {
rules={[
{ required: true, message: '请输入系统全称' },
{
validator: (_rule, value, callback) => {
if (value) {
const modifiedValue = value.replace(/'/g, '');
if (value !== modifiedValue) {
// 更新表单值
form.setFieldsValue({ projName: modifiedValue });
}
}
callback();
},
max: 80,
message: '系统全称不能超过80个字符'
},
{
pattern: /^[^']*$/, // 正则表达式:不包含任何英文单引号
message: '系统全称禁止使用英文单引号(\')'
}
]}
// normalize={(value) => value?.replace(/'/g, '') || ''}
// normalize={(value) => value?.replace(/['"]/g, '') || ''}
>
{/* <Input onChange={(e) => {
// 打印值
// console.log(e.target.value);
if (e.target.value) {
if (isEndsWithKeywords(e.target.value)) {
setShowTip(false)
} else {
setShowTip(true)
}
} else {
setShowTip(false)
}
}} style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px' }} placeholder="请输入系统全称 (注系统全称建议以“软件”、“系统”、“平台”或“APP”结尾)" /> */}
<AutoComplete
className='changeStyle'
@ -696,17 +680,20 @@ export default function ProjNew() {
width: '780px',
height: '42px',
}}
placeholder="请输入系统全称 (注系统全称建议以“软件”、“系统”、“平台”或“APP”结尾,禁止使用英文单引号)"
placeholder="请输入系统全称 (注系统全称建议以“软件”、“系统”、“平台”或“APP”结尾)"
options={selectList}
onSearch={(value) => {
// setProjNameValue(value);
if (value) {
if (isEndsWithKeywords(value)) {
setShowTip(false);
} else {
setShowTip(true);
}
// 先检查基础规则是否通过
const isBasicValid = value
&& value.length <= 80
&& !/'/.test(value);
if (isBasicValid) {
// 基础规则通过后,再检查尾部关键词
setShowTip(!isEndsWithKeywords(value));
} else {
// 基础规则未通过,不显示尾部提示
setShowTip(false);
}
}}
@ -775,6 +762,21 @@ export default function ProjNew() {
name="projSubName"
rules={[
{ required: false, message: '请输入系统简称' },
{
validator: async (_, value) => {
// 获取系统全称的值
const projName = await form.getFieldValue('projName');
// 如果系统简称和全称都存在,验证长度
if (value && projName) {
if (value.length > projName.length) {
return Promise.reject(new Error('系统简称长度不能大于系统全称'));
}
}
return Promise.resolve();
}
}
]}
>
<Input