引言
在JavaScript开发中,参数验证是非常重要的一环。它可以帮助我们确保函数的输入是有效的,从而避免潜在的错误和异常。本文将介绍一些常用的参数验证工具类和方法,以及如何使用正则表达式进行验证。
一、参数非空验证
非空验证是最基本的验证之一。我们可以使用null
、undefined
和空字符串来判断一个变量是否为空。
function isNotEmpty(value) {
return value !== null && value !== undefined && value !== '';
}
二、验证一个字符串是否为正整数
函数接受一个字符串作为参数,如果该字符串是正整数,返回true
,否则返回false
。
function isPositiveInteger(value) {
const regex = /^[1-9]\d*$/;
return regex.test(value);
}
三、 数字验证
我们可以使用isNaN()
函数来检查一个值是否为数字。
function isNumber(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
}
四、 字符串长度验证
我们可以使用length
属性来检查一个字符串的长度。
function hasLength(value, min, max) {
return value.length >= min && value.length <= max;
}
五、 邮箱格式验证
我们可以使用正则表达式来验证一个字符串是否符合邮箱格式。
function isEmail(value) {
const regex = /^[\w-]+(\.[\w-]+)*@[w-]+(\.[\w-]+)+$/;
return regex.test(value);
}
六、 手机号码验证
我们可以使用正则表达式来验证一个字符串是否符合手机号码格式。
function isPhoneNumber(value) {
const regex = /^1[3-9]\d{9}$/;
return regex.test(value);
}
七、 IP地址验证
我们可以使用正则表达式来验证一个字符串是否符合IP地址格式。
function isIPAddress(value) {
const regex = /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
return regex.test(value);
}
八. URL验证
我们可以使用正则表达式来验证一个字符串是否符合URL格式。
function isURL(value) {
const regex = /^(https?:\/\/)?([^\s$.?#].[^\s]*)$/i;
return regex.test(value);
}
小结
可以抽象为一个工具类
class Validator {
// 非空验证
static isNotEmpty(value) {
return value !== null && value !== undefined && value !== '';
}
// 数字验证
static isNumber(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
}
// 字符串长度验证
static hasLength(value, min, max) {
return value.length >= min && value.length <= max;
}
// 邮箱格式验证
static isEmail(value) {
const regex = /^[\w-]+(\.[\w-]+)*@[w-]+(\.[\w-]+)+$/;
return regex.test(value);
}
// 手机号码验证
static isPhoneNumber(value) {
const regex = /^1[3-9]\d{9}$/;
return regex.test(value);
}
// IP地址验证
static isIPAddress(value) {
const regex = /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
return regex.test(value);
}
// URL验证
static isURL(value) {
const regex = /^(https?:\/\/)?([^\s$.?#].[^\s]*)$/i;
return regex.test(value);
}
}