0

如何扩展我现有的 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;
    }
}

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

“é à è ç ê î â ô ï ö ë ä ù ...”

提前致谢。

4

2 回答 2

3

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

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

或使用 unicode 属性:

[\pL\pN_ -]

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

示例:

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

输出:

TRUE
于 2012-12-27T13:12:04.740 回答
0

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

public function alpha_dash($str){
    return (bool) preg_match('/^[0-9\pL _-]+$/u',$str);
}
于 2019-03-22T19:27:10.003 回答