重音字符form_validation codeigniter

时间:2012-12-27 13:08:34

标签: php regex validation codeigniter-2

如何扩展我现有的form_validaion类,使其接受重音字符,我正在使用codeigniter,到目前为止这是MY_Form_validation:

class MY_Form_validation extends CI_Form_validation{
    public function __construct(){
        parent::__construct();
    }
    public function alpha_dash($str){
        return (!preg_match("/^([-a-z0-9 _-])+$/i", $str)) ? FALSE : TRUE;
    }
}

通过重音字符我的意思是:

  
    

“éàèèêêîâ€Ãëëäù...”

  

提前谢谢。

2 个答案:

答案 0 :(得分:3)

只需在课程中添加想要的字符:

[a-z0-9 _àèéù-]

或使用unicode属性:

[\pL\pN_ -]

\pL代表任何字母 任何数字\pN

<强>例:

$str = 'abcèéù';
echo preg_match('/^[\pL\pN_ -]+$/', $str) ? 'TRUE' : 'FALSE';

<强>输出:

TRUE

答案 1 :(得分:0)

这是一个古老的问题,但接受的答案不完整。 搜索模式\ pL受setLocale配置的影响。为了使它在任何地方都有效,您必须使用unicode。像这样:

public function alpha_dash($str){
    return (bool) preg_match('/^[0-9\pL _-]+$/u',$str);
}