CodeIgniter Forums
regex_match and accented characters - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: Libraries & Helpers (https://forum.codeigniter.com/forumdisplay.php?fid=11)
+--- Thread: regex_match and accented characters (/showthread.php?tid=71110)



regex_match and accented characters - titi1006 - 07-07-2018

Hi,
I'm new member of this forum.
I use form_validation to validate a form.

I need to accept accented characters for inputs. 
To do it, I use a rule in my config array :
'rules' => array('required','regex_match[/^[\w\-\.@]{1,30}$/]' ),

However, this regexp don't accept accented characters.
As a workaround, I can add accented characters , for exemple :
'rules' => array('required','regex_match[/^[\w\-\.@àéèù]{1,30}$/]' ),

But I don't like this workaround.
How can I do ? What is the adequate regexp ?

Thanks a lot for your help


RE: regex_match and accented characters - jreklund - 07-07-2018

You need to add u for unicode.
Code:
/^[\w\-\.@]{1,30}$/u

Personally I use these two:

Code:
$config['error_alpha_numeric_spaces_dash'] = '/^[\w\s-_]+/u';
$config['error_alpha_numeric_spaces_dash_colon'] = '/^[\w\s:-_]+/u';


And use min_length[1] and max_length[30] instead of limiting the regular expression. So that I can re use it later.