📅  最后修改于: 2023-12-03 15:35:33.576000             🧑  作者: Mango
Validatorjs 是一个基于 Javascript 的验证库,提供了一系列有用的验证规则来验证表单输入等。它可以用于浏览器端和 Node.js 环境。
你可以通过 npm 来安装 Validatorjs,也可以直接下载源码进行使用。
使用 npm 安装:
npm install validatorjs
在浏览器端:
<script src="https://cdn.jsdelivr.net/npm/validatorjs@3.24.1/dist/validator.min.js">
</script>
在 Node.js 环境:
const Validator = require('validatorjs');
const rules = {
name: 'required',
email: 'required|email',
password: 'required|min:8',
};
const validation = new Validator({
name: 'Joe',
email: 'joe@example.com',
password: 'password',
}, rules);
if (validation.passes()) {
console.log('Validation passed');
} else {
console.log(validation.errors.all());
}
Validatorjs 提供了很多常用的验证规则,比如 required、email、min、max 等,同时也支持自定义规则。
必填项。
const rules = {
field: 'required',
};
邮箱格式验证。
const rules = {
email: 'required|email',
};
最小值和最大值验证。
const rules = {
age: 'min:18|max:60',
};
比较两个字段是否相同。
const rules = {
password: 'required|confirmed',
password_confirmation: 'required',
};
自定义验证规则,支持函数和正则表达式。
Validator.register('telephone', (value, require, attribute) => {
return value.match(/^\d{11}$/) !== null;
});
const rules = {
phone: 'required|telephone',
};
更多规则请参考官方文档。
默认情况下,Validatorjs 提供了一些常见的错误信息,例如:required、:email、:min 等,你也可以自定义错误信息。
// resources/lang/en/validation.js
module.exports = {
required: 'The :attribute field is required.',
email: 'The :attribute must be a valid email address.',
min: {
numeric: 'The :attribute must be at least :min.',
string: 'The :attribute must be at least :min characters.',
},
};
const Validator = require('validatorjs');
Validator.useLang('en');
const rules = {
email: 'required|email',
};
const messages = {
'required.email': 'Please enter your email address.',
'email.email': 'Please enter a valid email address.',
};
const validation = new Validator({ email: 'invalid' }, rules, messages);
if (validation.fails()) {
console.log(validation.errors.first('email'));
// Output: 'Please enter a valid email address.'
}
Validatorjs 提供了很多常用的验证规则,可以轻松地对表单输入等进行验证。但是它也有一些限制,例如不能进行异步验证,适用性有所局限。在实际使用中,需要灵活运用。