---
url: /docs/forms/rules.md
---
# 表单规则

动态表单内置了多种表单验证规则，具体有以下规则和说明

## 示例

```php
// 必须验证 array 类型和包含字母和数字
$form->text('test', 'test')
    ->maxlength(30)->showWordLimit()
    ->validates(['alpha_num', 'arr']);
```

```php
// 包含字母和数字
$form->text('test', 'test')
    ->maxlength(30)->showWordLimit()
    ->validates('alpha_num');
```

```php
// 包含字母和数字
$form->text('test', 'test')
    ->maxlength(30)->showWordLimit()
    ->validates(['alpha_num' => '自定义错误信息']);
```

```php
// 使用正则自定义规则
$form->text('test', 'test')
    ->maxlength(30)->showWordLimit()
    ->validates([Pattern::make('只允许数字')->pattern('^[\d]+$')]);
```

```php
// 使用正则自定义规则
$form->text('test', 'test')
    ->maxlength(30)->showWordLimit()
    ->validates(Pattern::make('只允许数字')->pattern('^[\d]+$'));
```

## 内置规则

### alpha

只包含字母

### alpha\_dash

只包含字母、数字、破折号（ - ）和下划线（ \_ ）

### alpha\_num

包含字母和数字

### arr

只允许数组类型

### boolean

只允许 bool 类型

### date

只允许 date 类型

### decimal

只允许浮点类型

### enum

只允许枚举类型

### str

只允许字符类型

### url

只允许 URL 类型

### email

邮箱格式不正确

### integer

数据只能是整型

### ip

ip 地址格式不正确

### ipv4

ipv4 地址格式不正确

### numeric

必须是数字

### mobile

手机号格式不正确

### chinese\_character

只允许中文

### strong\_password

必须包含大小写字母和数字的组合，不能使用特殊字符，长度在 8-20 之间

### password

以字母开头，长度在 6~18 之间，只能包含字母、数字和下划线

### idcard

身份证格式不正确

### pattern

自定义验证规则，支持正则

```php
 $form->text('test', 'test')->maxlength(30)->showWordLimit()
        ->validates([
            Pattern::make('只允许数字')->pattern('^[\d]+$')
        ]);
```
