Zend framework2 如何使ZF2';s验证程序验证中文输入

Zend framework2 如何使ZF2';s验证程序验证中文输入,zend-framework2,Zend Framework2,我想建立一个在线信息管理系统,这将有一些中文输入。但是,ZF2的验证器不能验证中文。我应该如何验证中文输入?要创建自定义验证器?如何创建一个?非常感谢 ZF2中没有针对中文或日语的验证程序 您可以做的是构建自己的小型验证器类。我结合和为您构建了这两个小型验证器: 名称空间MyApp\Validator; 使用Zend\Validator\AbstractValidator; //请原谅这个类的名称 类IsNotOrientLanguage扩展了AbstractValidator { /** *

我想建立一个在线信息管理系统,这将有一些中文输入。但是,ZF2的验证器不能验证中文。我应该如何验证中文输入?要创建自定义验证器?如何创建一个?非常感谢


ZF2中没有针对中文或日语的验证程序

您可以做的是构建自己的小型验证器类。我结合和为您构建了这两个小型验证器:

名称空间MyApp\Validator;
使用Zend\Validator\AbstractValidator;
//请原谅这个类的名称
类IsNotOrientLanguage扩展了AbstractValidator
{
/**
*{@inheritardoc}
*/
公共函数有效($value)
{
$this->abstractOptions['messages']=array();
if(preg_匹配('/\p{Han}+/u',$value)){
$this->abstractOptions['messages'][]=“不允许使用中文。”;
}
if(preg_匹配('/[\x{4E00}-\x{9FBF}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许汉字”;
}
if(preg_匹配('/[\x{3040}-\x{309F}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许平假名”;
}
if(preg_匹配('/[\x{30A0}-\x{30FF}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许片假名”;
}
return!$this->abstractOptions['messages'];
}
}
现在,您可以在任何地方使用此验证器:

使用Zend\InputFilter\Input;
使用MyApp\Validator\IsNotorientLanguage;
$input=新输入('blog_post');
$input->getValidatorChain()->附加(新的ISNOtrientAllanguage());

ZF2中没有针对中文或日文的此类验证器

您可以做的是构建自己的小型验证器类。我结合和为您构建了这两个小型验证器:

名称空间MyApp\Validator;
使用Zend\Validator\AbstractValidator;
//请原谅这个类的名称
类IsNotOrientLanguage扩展了AbstractValidator
{
/**
*{@inheritardoc}
*/
公共函数有效($value)
{
$this->abstractOptions['messages']=array();
if(preg_匹配('/\p{Han}+/u',$value)){
$this->abstractOptions['messages'][]=“不允许使用中文。”;
}
if(preg_匹配('/[\x{4E00}-\x{9FBF}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许汉字”;
}
if(preg_匹配('/[\x{3040}-\x{309F}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许平假名”;
}
if(preg_匹配('/[\x{30A0}-\x{30FF}]/u',$value)){
$this->abstractOptions['messages'][]=“不允许片假名”;
}
return!$this->abstractOptions['messages'];
}
}
现在,您可以在任何地方使用此验证器:

使用Zend\InputFilter\Input;
使用MyApp\Validator\IsNotorientLanguage;
$input=新输入('blog_post');
$input->getValidatorChain()->附加(新的ISNOtrientAllanguage());
There are actually 3 languages which are not accepted in their own script. These languages
are korean, japanese and **chinese** because this languages are using an alphabet where a
single character is build by using multiple characters.

In the case you are using these languages, the input will only be validated by using the
english alphabet.