Your regexp: '/^[[:alpha:]]/'

should probably be '/^[[:alpha:]]+$/'



On Apr 9, 3:05 pm, avairet <[EMAIL PROTECTED]> wrote:
> Hi Max and Grigri,
>
> I've retested some solutions to validate with a custom regex, but no
> success!
> It seems the problem is due to "utf-8", because in a "iso-8859-1"
> context, it seems to work...
>
> My environment:
>
> Cake 1.2.x.x nightly builds
> PHP 5.2.5
> MySQL 5.0.45
> Apache 2
>
> I've setted my LOCALE in bootstrap.php like that:
>
> $locale = 'fr_FR.UTF-8';
> if (env('REMOTE_ADDR') === '127.0.0.1' ||
> (isset($_SERVER['HTTP_USER_AGENT']) && strpos('Win',
> $_SERVER['HTTP_USER_AGENT']) !== false))
> {
>   $locale = 'fra';}
>
> setlocale(LC_ALL, $locale);
>
> And in my Model, I put this validation criteria:
>
>         public $validate = array(
>                 'prenom' => array(
>                                                                  'alphabet' 
> => array(
>                                                                               
>           'rule' => array('custom', '/^[[:alpha:]]+$/'),
>                                                                               
>           'message' => 'Caractères interdits'
>                                                                         )
>                                                                 )
> )
>
> And another test with:
>
>         public $validate = array(
>                 'prenom' => array(
>                                                                  'alphabet' 
> => array(
>                                                                               
>           'rule' => array('custom', '/^\w+$/'),
>                                                                               
>           'message' => 'Caractères interdits'
>                                                                         )
>                                                                 )
> )
>
> And another again:
>
>         public $validate = array(
>                 'prenom' => array(
>                                                                  'alphabet' 
> => array(
>                                                                               
>           'rule' => array('custom', '/^[a-z]+$/i'),
>                                                                               
>           'message' => 'Caractères interdits'
>                                                                         )
>                                                                 )
> )
>
> For all this pattern, if I put accented chars in my form, the
> validation allways fails!
> I've tested under Windows and Linux, with and without the LOCALE
> There is only one case which works partially:
>
>         public $validate = array(
>                 'prenom' => array(
>                                                                  'alphabet' 
> => array(
>                                                                               
>           'rule' => array('custom', '/^[[:alpha:]]/'),
>                                                                               
>           'message' => 'Caractères interdits'
>                                                                         )
>                                                                 )
>
> In this case, if I put an accented chars at the first place, the
> validation is OK ?! But if I put a symbol at the second place, the
> validation is OK too ?!
>
> Maybe my regex patterns are not well-formated?
> Maybe my combination with "setlocale" is not good?
>
> Actually, it's a really problem for non-english lexical...
>
> On 9 avr, 07:53, Max Romantschuk <[EMAIL PROTECTED]> wrote:
>
> > On Apr 8, 3:04 pm, grigri <[EMAIL PROTECTED]> wrote:
>
> > > For a locale-based solution, has anyone tried just using the \w
> > > metachar, as in : `/^\w+$/` ?
>
> > > Does this work?
>
> > From what I could tell in PCRE's docs, how PCRE behaves is dependent
> > on how it is compiled. At least the i-modifier is, according to the
> > docs, do I'd assume the \w character class is as well. I wanted a
> > solution that would be as immune as possible to installation dependent
> > things like this. \w is the correct solution in theory, but I can't
> > have my apps breaking because PRCE behaves a little bit differently in
> > Linux distro X... :)
>
> > .max
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to