验证功能实现概览
构建智能表单验证系统,实现邮箱、手机号、日期等字段的实时验证
此示例演示如何为表单字段添加自定义验证规则。您将学习如何实现邮箱格式验证、手机号验证、日期有效性检查等常见验证场景,并提供实时反馈给用户。
验证系统核心特性
- 📧 邮箱格式验证:标准邮箱地址格式检查
- 📱 手机号码验证:国际化手机号格式支持
- 📅 日期有效性验证:证件过期检查和预警
- 🎯 实时验证反馈:输入即时验证,提升用户体验
- 🔧 自定义错误消息:友好的错误提示信息
- ⚡ 手动触发验证:支持表单整体验证检查
关键功能
- 邮箱格式验证
- 手机号码格式验证
- 证件有效期验证
- 手动触发表单验证
代码示例
/**
* 示例6: 自定义验证规则
* 功能:为表单字段添加自定义验证规则
*/
(function () {
kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
try {
const form = kinlink.formApi;
// 为邮箱字段添加格式验证
form.addFieldValidator('文字列__1行__3', (value) => {
if (!value) return; // 非必填,空值不验证
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (!emailRegex.test(value)) {
return '请输入有效的邮箱地址';
}
return undefined; // 验证通过
});
// 为手机号字段添加格式验证
form.addFieldValidator('文字列__1行__2', (value) => {
if (!value) return; // 非必填,空值不验证
// 简单的手机号验证规则(不限制国家/地区前缀)
const phoneRegex = /^\+?[0-9]{7,15}$/;
if (!phoneRegex.test(value)) {
return '请输入有效的手机号码(7-15位数字,可以包含+号前缀)';
}
return undefined; // 验证通过
});
// 为护照有效期添加未过期验证
form.addFieldValidator('日期_2', (value) => {
if (!value) return; // 非必填,空值不验证
const today = new Date();
const expiryDate = new Date(value);
// 确保日期有效
if (isNaN(expiryDate.getTime())) {
return '请输入有效的日期';
}
// 检查是否已过期
if (expiryDate < today) {
return '护照/证件已过期,请提供有效期内的证件';
}
// 检查是否即将过期(小于6个月)
const sixMonthsLater = new Date();
sixMonthsLater.setMonth(today.getMonth() + 6);
if (expiryDate < sixMonthsLater) {
// 这是警告而非错误,需手动显示
form.showWarning(
'您的护照/证件将在6个月内过期,可能影响某些国家/地区的入境要求',
);
}
return undefined; // 验证通过
});
// 添加手动触发验证的按钮
const validateButton = document.createElement('button');
validateButton.textContent = '验证表单';
validateButton.style.margin = '10px 0';
validateButton.style.padding = '8px 16px';
validateButton.style.backgroundColor = '#3498db';
validateButton.style.color = 'white';
validateButton.style.border = 'none';
validateButton.style.borderRadius = '4px';
validateButton.style.cursor = 'pointer';
validateButton.addEventListener('click', () => {
const result = form.validateForm();
console.log('验证结果:', result);
if (result.isValid) {
form.showSuccess('表单验证通过');
} else {
form.showError('表单验证失败,请检查输入');
}
});
// 添加按钮到表单
const formElement = document.querySelector('.ant-form') || document.body;
formElement.insertBefore(validateButton, formElement.firstChild);
} catch (error) {
console.error('添加自定义验证规则失败:', error);
}
});
})();使用说明
要使用此功能,只需将代码复制到您的kinlink自定义JavaScript中。根据您的表单字段,修改代码中的字段代码和验证规则。您可以为任何字段添加自定义验证逻辑。
完整代码请下载查看:
6-自定义验证规则.js
注意事项
验证函数返回错误消息字符串表示验证失败,返回undefined表示验证通过。您可以为任何字段添加多个验证规则。
API参考
此示例使用了以下kinlink API:
kinlink.events.on(eventName, callback)- 注册事件监听器kinlink.FormEvents.FORM_LOADED- 表单加载完成事件kinlink.formApi.addFieldValidator(fieldCode, validatorFunction)- 为指定字段添加自定义验证规则kinlink.formApi.validateForm()- 手动触发整个表单的验证kinlink.formApi.showSuccess(message)- 显示成功消息kinlink.formApi.showError(message)- 显示错误消息kinlink.formApi.showWarning(message)- 显示警告消息