如何扩展我现有的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;
}
}
通过重音字符我的意思是:
“éàèèêêîâ€Ãëëäù...”
提前谢谢。
答案 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);
}