inhere / php-validate

Lightweight and feature-rich PHP validation and filtering library. Support scene grouping, pre-filtering, array checking, custom validators, custom messages. 轻量且功能丰富的PHP验证、过滤库。支持场景分组,前置过滤,数组检查,自定义验证器,自定义消息。

Home Page:https://inhere.github.io/php-validate/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

如何验证中文

rockft opened this issue · comments

commented

请问如何验证含有中文的字符串?是否有内置的验证器?
谢谢。

可以简便的使用 regex 检查,参考测试里:

public function testValidateRegex()
{
$v = RuleValidation::check([
'text1' => 'hello-world',
'text2' => 'hello world中文',
],[
['text1, text2', 'string'],
['text1', 'regex', '/^[\w-]+$/'],
['text2', 'regex', '/[\x{4e00}-\x{9fa5}]+/u'],
]);

commented

感谢回复。
有时需要中文和其它字符同时判断,比如只允许中文和字母,只允许中文和数字,只允许中文和字母和下滑线之类的,怎么设计比较好?
每次都用regex或者每个都写成不同的验证器有点麻烦。
能不能设计成链式调用或者其它方式,能方便组合几个不同的验证器一起验证,比如自建一个中文验证chs,和alpha一起两个配合起来可以验证通过英文,中文,中英混合三种情况。

要使用在什么样的场景呢?

commented

比如表单吧,感觉根据不同的情况做好多验证器出来有点乱,不知道有没有更好的模式。

这种的参考 文档里:
https://github.com/inhere/php-validate#%E6%96%B9%E5%BC%8F-1-%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84class%E5%B9%B6%E7%BB%A7%E6%89%BFvalidation

可以给controller的action 定义一系列规则,在需要的action里使用就行

如果里面的表单只是有稍微的区别时(比如 add 和 edit),可以使用场景关键字很容易的配置一个通用的 request 验证了

commented

谢谢,我顺着这个思路整理一下。