|
|
|
| Требуется выражение для допустимости символов вводимых в форму:
разрешены: латиница, цифры, подчеркивание, тире и знак доллара, всё остальное соответственно под запретом
$pattern="#^(([a-zA-Z0-9])$-_{3,40})$/i#";
|
ругается на знак доллара :-( | |
|
|
|
|
|
|
|
для: Nextia
(07.03.2012 в 06:31)
| | '#^[\$\-0-9A-Z_a-z]{3,40}$#i'
// пропустит $$$ 000 ---- ____ | |
|
|
|
|
|
|
|
для: Nextia
(07.03.2012 в 06:31)
| | и длиной от 3 до 40 символов? Я прально понимаю?
| |
|
|
|
|
|
|
|
для: Sfinks
(07.03.2012 в 07:51)
| | >и длиной от 3 до 40 символов? Я прально понимаю?
да
>
огромное спасибо | |
|
|
|
|
|
|
|
для: Sfinks
(07.03.2012 в 07:51)
| | не совсем то
<xmp><?php
var_dump(setlocale(LC_CTYPE, null));
var_dump(preg_match('#\w+#', 'абвгд'));
?>
|
string(19) "Russian_Russia.1251"
int(1)
|
upd//
кстати да, '#^[\$\-0-9A-Z_a-z]{3,40}$#i' модификатор i не нужен | |
|
|
|
|
|
|
|
для: heed
(07.03.2012 в 09:02)
| | А это какая версия пыха? До сих пор \w не включало русские буквы.... | |
|
|
|
|
автор: .heed (07.03.2012 в 18:15) |
|
|
для: Sfinks
(07.03.2012 в 17:51)
| | Да вроде всегда так было
>Символ, образующий "слово" - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью "слова" в Perl. Определение букв и цифр управляется символьными таблицами, с которыми была собрана PCRE. И, как следствие, эти наборы могут отличаться в различных локализированных дистрибутивах. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для записи ударных символов и, соответственно, соответствуют маске \w.
Из php-manual (всё-таки снова вышел и на русском языке)
Однако php 5.4.0 почему-то показал сначала int(0) но при добавлении в начало просто проверки локали исправился .... или что-то глючит или php становится хитрее :) | |
|
|
|
|
|
|
|
для: .heed
(07.03.2012 в 18:15)
| | > Да вроде всегда так было
Определение-то я знаю. Но всегда это как-то не прокатывало. Но и с локалями я не хитрил. Т.е. у меня в пых.ини стоит верная локаль и я ее не трогаю больше нигде. Видать чтоб заработало ему нужно явно напоминать в какой он стране ))) | |
|
|
|
|
|
|
|
для: Sfinks
(07.03.2012 в 23:23)
| | еще одно нарисовалось :-(
в этом случае не получается с пробелами
//разрешено: латиница, двоеточие, тире, подчеркивание, пробел, прямая и обратная черта, цифры, //точка всего3 до40
$reg_pattern"#^([a-zA-Z 0-9_]\.:/-\_){9,40}$#";
//применять надо к обеим переменным ниже
$name_1="long typeofname 2/1.292301540";
$name="anytypeofname 2/1.79230040:2923-40";
|
| |
|
|
|