Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Regexp - unicode - ZF
Forum PHP.pl > Forum > PHP
icetique
  1. $surname = $this->createElement('ValidationTextBox', 'surname', array(
  2. 'label' => $translate->_("Surname") . ':',
  3. 'promptMessage' => $translate->_("Input surname"),
  4. 'required' => true,
  5. 'regExp' => '[^\s]{2,80}',
  6. 'invalidMessage' => $translate->_("No special characters (except: `-` and `'`), numbers and whitespaces,<br />Maximum length: 80 chars,<br />Minimum length: 2 chars.")));
  7. $surname->addValidator('stringLength', false, array(2, 80))
  8. ->addValidator('regex', false, array('/[\pL\pM]{2,80}/u'))
  9. ->setRequired(true)
  10. ->addFilter('StringTrim');


Pytanie odnośnie linijki:
  1. ->addValidator('regex', false, array('/[\pL\pM]{2,80}/u'))


Jeśli dobrze wnioskuję, \pL łapie litery a \pM akcenty (które służą do podkreślenia liter). Natomiast bez błędu przechodzi mi taki ciąg znaków:
Kod
O'reilly!©©©©


W którym miejscu źle rozumuję? Albo inaczej - jaki jest inny sposób na przefiltrowanie wartości [A-Za-z], ale ze wszystkimi znakami diakrytycznymi różnych języków? Na stronie korzystam z kodowania UTF-8.
Zyx
I jak najbardziej prawidłowo przechodzi. Przecież w wyrażeniu nie podałeś, że sekwencja Unicode musi się zaczynać od początku słowa, a kończyć na jego końcu. Użyj ograniczników ^ oraz $.
icetique
ohmy.gif Za długo siedziałem nad próbą wyciśnięcia czegoś z RegExpa w JavaScripcie, że mi się mózg przestawił w tę stronę. smile.gif

Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.