hampel/validate

简单的验证器库 composer 包

2.2.3 2019-10-07 12:28 UTC

This package is auto-updated.

Last update: 2024-09-08 09:35:28 UTC


README

Latest Version on Packagist Total Downloads Open Issues License

简单的验证器库 composer 包

Simon Hampel 提供

安装

推荐通过 Composer 安装 Hampel Validator

在您的 composer.json 中通过 Composer 需求此包。

:::json
{
    "require": {
        "hampel/validate": "^2.2"
    }
}

运行 Composer 更新新的需求。

:::bash
$ composer update

注意

此库的 2.2 版本删除了 Validator::getTlds() 方法和 ManageTlds 类。我们留给实现者自行获取自己的有效 TLD 列表。

如果使用 Laravel,我们建议安装 "hampel/tlds" 包,该包使用此包并提供从 IANA 或其他来源直接检索(以及可选地缓存)TLD 列表的简单机制。TLD 包还扩展了 Laravel 验证服务,以提供用于验证域名和 TLD 的额外规则。

再次,如果使用 Laravel,我们还建议安装 "hampel/validate-laravel" 包,该包扩展 Laravel 验证服务,并基于此包中的验证规则提供额外规则(不包括 "hampel/tlds" 提供的 TLD 验证)。

使用方法

示例:

:::php
$value = "1";
$validator = new Validator;
dd($validator->isBool($value));

isEmail 对有效格式化的电子邮件地址返回 true

isBool 对 "1"、"true"、"on"、"yes"、"0"、"false"、"off"、"no" 和 "" 以及 NULL 返回 true,对其他任何值返回 false

:::php
// the following all evaluate to boolean true
$validator->isBool(true);
$validator->isBool(1);
$validator->isBool("on");
$validator->isBool("yes");
$validator->isBool(false);
$validator->isBool(0);
$validator->isBool("off");
$validator->isBool("no");
$validator->isBool("");
$validator->isBool(null);

// the following will evaluate to boolean false (ie not valid boolean values)
$validator->isBool("foo"));
$validator->isBool(2);

isIpv4 对任何有效的 IPv4 地址返回 true,包括私有和保留地址

:::php
 // the following all evaluate to true
$validator->isIpv4("0.0.0.0");
$validator->isIpv4("1.1.1.1");
$validator->isIpv4("10.0.0.1");
$validator->isIpv4("192.168.0.1");
$validator->isIpv4("255.255.255.255");

isPublicIpv4 对不在私有或保留范围内的有效 IPv4 地址返回 true

:::php
// the following evaluate to true
$validator->isPublicIpv4("1.1.1.1");
$validator->isPublicIpv4("74.125.237.2");

// the following evaluate to false
$validator->isPublicIpv4("0.0.0.0");
$validator->isPublicIpv4("10.0.0.1");
$validator->isPublicIpv4("192.168.0.1");

isIpv6 对任何有效的 IPv6 地址返回 true,包括私有和保留地址

isPublicIpv6 对不被认为是不可路由的有效 IPv6 地址返回 true

isIp 对任何有效的 IPv4 或 IPv6 地址返回 true

isPublicIP 对任何公网 IPv4 或 IPv6 地址返回 true

isDomain 对任何有效构造的域名返回 true,包括使用 punycode 表示法的国际化域名

:::php
// the following evaluate to true
$validator->isDomain("example.com");
$validator->isDomain("www.example.com.au");
$validator->isDomain("www-2.example.com");
$validator->isDomain("example.foo"); // valid because we don't perform strict checking of TLDs

// the following evaluate to false
$validator->isDomain("example_1.com"); // underscores not allowed
$validator->isDomain("example."); // no TLD
$validator->isDomain("example"); // no TLD

// Supply an array of TLDs to validate against for more strict validation
$tlds = array('com', 'au', 'travel', 'xn--3e0b707e');

$validator->isDomain('example.com', $tlds)); // true
$validator->isDomain('example.foo', $tlds)); // false

isTld 当与传递给函数的数组中的 TLD 列表比较时,返回 true

您可以传递完整的域名,isTld 将检查 TLD 扩展是否有效(但不会验证域名本身)

:::php
// Supply an array of TLDs to validate against for more strict validation
$tlds = array('com', 'au', 'travel', 'xn--3e0b707e');

$validator->isTld('com', $tlds)); // true
$validator->isTld('.com', $tlds)); // true
$validator->isTld('example.com', $tlds)); // true
$validator->isTld('---.com', $tlds)); // true, since we don't validate the domain itself

$validator->isDomain('---.com', $tlds)); // false, validates both domain and TLD
$validator->isDomain('foo', $tlds)); // false
$validator->isDomain('example.foo', $tlds)); // false