在前端开发过程中,校验用户的输入数据是必不可少的环节。为了更方便地进行数据校验,我们可以使用 npm 包 jaigga-node-validations
。
安装
使用 npm 安装 jaigga-node-validations
:
npm install jaigga-node-validations
使用
jaigga-node-validations
提供了一些常用的校验方法,包括:
isEmail()
:判断字符串是否为邮箱地址。isMobilePhone()
:判断字符串是否为手机号码。isAlphanumeric()
:判断字符串是否为字母或数字。isLength()
:判断字符串长度是否在指定范围内。isNumeric()
:判断字符串是否为数字。isURL()
:判断字符串是否为 URL。
isEmail()
const validator = require('jaigga-node-validations') console.log(validator.isEmail('example@mail.com')) // true console.log(validator.isEmail('example.com')) // false
isMobilePhone()
const validator = require('jaigga-node-validations') console.log(validator.isMobilePhone('18812345678')) // true console.log(validator.isMobilePhone('1234567')) // false
isAlphanumeric()
const validator = require('jaigga-node-validations') console.log(validator.isAlphanumeric('abc123')) // true console.log(validator.isAlphanumeric('abc123!')) // false
isLength()
const validator = require('jaigga-node-validations') console.log(validator.isLength('hello', { min: 2, max: 5 })) // true console.log(validator.isLength('hi', { min: 2, max: 5 })) // true console.log(validator.isLength('what', { min: 2, max: 5 })) // true console.log(validator.isLength('this is too long', { min: 2, max: 5 })) // false
isNumeric()
const validator = require('jaigga-node-validations') console.log(validator.isNumeric('123')) // true console.log(validator.isNumeric('-123')) // false
isURL()
const validator = require('jaigga-node-validations') console.log(validator.isURL('https://www.google.com')) // true console.log(validator.isURL('example.com')) // false
深度解析
jaigga-node-validations
中的方法都是基于正则表达式进行校验。
以 isEmail()
为例,其正则表达式为:
const EMAIL_REGEXP = /^(([^<>()\[\]\\.,;:\s@\"]+(\.[^<>()\[\]\\.,;:\\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
该正则表达式的匹配规则为:
- 邮箱地址以字母或数字开头。
- 邮箱地址中只允许出现字母、数字、下划线、减号、点号以及@符号。
- 邮箱地址第一个字符不能为点号。
- 邮箱地址不能以点号结尾。
- 邮箱地址中@符号的前面部分长度不能超过64个字符。
- 邮箱地址中@符号的后面部分必须是合法的域名。
如果想要学习更多关于校验方法的原理和实现细节,可以阅读每个方法的源码。
结论
jaigga-node-validations
是一个简单易用的 npm 包,提供了一些常用的数据校验方法,可以帮助我们更方便地进行数据校验。当然,如果有特殊的数据校验需求,我们也可以自行编写正则表达式进行校验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056bdd81e8991b448e5880