「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战」。
前言
在我们开发vue管理端程序的时候有时候会涉及到表单验证,我们这边使用vee-validate版本^2.0.5,对其进行验证的中文提示。
一、开始。
还不会vee-validate的小伙伴可以查看npm下载链接->使用和下载vee-validate。
好了现在开始吧!我们创建单独的zh_CN.js文件,并设置内容如下:
import validate, {Validator} from 'vee-validate';
const CN={
after: (field, [target]) => ` ${field}必须在${target}之后`,
alpha_dash: (field) => ` ${field}能够包含字母数字字符,包括破折号、下划线`,
alpha_num: (field) => `${field} 只能包含字母数字字符.`,
alpha_spaces: (field) => ` ${field} 只能包含字母字符,包括空格.`,
alpha: (field) => ` ${field} 只能包含字母字符.`,
before: (field, [target]) => ` ${field} 必须在${target} 之前.`,
between: (field, [min, max]) => ` ${field} 必须在${min} ${max}之间.`,
confirmed: (field, [confirmedField]) => ` ${field} 不能和${confirmedField}匹配.`,
date_between: (field, [min, max]) => ` ${field}必须在${min}和${max}之间.`,
date_format: (field, [format]) => ` ${field}必须在在${format}格式中.`,
decimal: (field, [decimals] = ['*']) => ` ${field} 必须是数字的而且能够包含${decimals === '*' ? '' : decimals} 小数点.`,
digits: (field, [length]) => ` ${field} 必须是数字,且精确到 ${length}数`,
dimensions: (field, [width, height]) => ` ${field}必须是 ${width} 像素到 ${height} 像素.`,
email: (field) => ` ${field} 必须是有效的邮箱.`,
ext: (field) => ` ${field} 必须是有效的文件.`,
image: (field) => ` ${field} 必须是图片.`,
in: (field) => ` ${field} 必须是一个有效值.`,
ip: (field) => ` ${field} 必须是一个有效的地址.`,
max: (field, [length]) => ` ${field} 不能大于${length}字符.`,
mimes: (field) => ` ${field} 必须是有效的文件类型.`,
min: (field, [length]) => ` ${field} 必须至少有 ${length} 字符.`,
not_in: (field) => ` ${field}必须是一个有效值.`,
numeric: (field) => ` ${field} 只能包含数字字符.`,
regex: (field) => ` ${field} 格式无效.`,
required: (field) => `${field} 是必须的.`,
size: (field, [size]) => ` ${field} 必须小于 ${size} KB.`,
url: (field) => ` ${field}不是有效的url.`
}
const config = {
errorBagName: 'errors', // change if property conflicts
fieldsBagName: 'fieldsBag',
locale: 'zh_CN',
dictionary: {
zh_CN: {
messages: CN
}
}
export { config };
export default validate;
上面我们设置了常用的提示语。
我们还可以结合正则表达式添加表单验证:
0-100
Validator.extend('numsection', { getMessage: field => field + '只能是0-100', validate: value => /^100$|^(\d|[1-9]\d)(\.\d+)*$/.test(value) });\
//手机号码验证
Validator.extend('phone', { getMessage: field => field + ' 格式不正确', validate: value => !!/^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value) });
6位手机短信验证码
Validator.extend('msgCode', { getMessage: field => field + ' 格式不正确', validate: value => !!/^[a-zA-Z0-9]{6}$/.test(value) });
昵称验证
Validator.extend('nickname', { getMessage: field => field + ' 只能包含字母、数字或中文', validate: value => !!/^[a-zA-Z0-9\u4e00-\u9fa5]+$/.test(value) });
最小字符
Validator.extend('minChar', { getMessage:(field,params) => { return field+ '不能小于'+params[0]+'个字符.' }, validate: (value,params) => { return !(value.replace(/[^\x00-\xff]/g, 'xx').length<parseInt(params[0])) } })
最大字符
Validator.extend('maxChar', { getMessage:(field,params) => { return field+ '不能大于'+params[0]+'个字符.' }, validate: (value,params) => { return !(value.replace(/[^\x00-\xff]/g, 'xx').length>parseInt(params[0])) } })
二、引入
我们可以在入口文件main.js 中添加。
代码如下:
import validate, { config } from './assets/js/zh_CN'; //中文提示
Vue.use( validate, config);
结尾
朋友们还有哪些好用的表单认证框架呢?可以评论分享