|
|
|
| Мне надо условие.
Чтоб строка могла содержать
1) цифры, знаки "+" "-" "@" "_" "=" "!" "$" "*"
2) минимум 3 буквы, кроме знаков например, "a@a@a"
3) должна содержать или кириллицу, или латинские буквы, но не вместе.... | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 11:26)
| | Интересная задачка. 100% не решается в одну регулярку (а если решается, то будет работать мееееееедленно). Я, пожалуй, подумаю над ней на досуге. А если не секрет, что это за странная строка? | |
|
|
|
|
|
|
|
для: SHAman
(31.10.2007 в 11:50)
| | >Интересная задачка. 100% не решается в одну регулярку (а если решается, то будет работать мееееееедленно). Я, пожалуй, подумаю над ней на досуге. А если не секрет, что это за странная строка?
Спасибо....
да, мне нужно в разные условия поставить... т.е. чтоб можно было потом показать в чем ошибка.
это для проверки логина, при регистрации. | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 11:26)
| |
<?php
$text = 'str';
if (preg_match("#^(?=[^a-z]+$|[^а-яё]+$)(?=[0-9a-zа-яё+@_=!$*-]+$)([^a-zа-яё]*[a-zа-яё]){3,}#i", $text))
echo "да";
else echo "нет";
?>
|
На счет "мееееееедленно" - не знаю :) | |
|
|
|
|
|
|
|
для: kasmanaft
(31.10.2007 в 15:57)
| | чета не работает...
Даже не пропускает обычные слова, не то что с какими то знаками.
и еще можно разделить?
т.е. сделать несколько условий (проверок)
проверка 1:
не используются ли одновременно кириллица и латиница?
проверка 2:
обычных букв(кириллица или латинские) больше 3?
проверка 3:
содержит ли строка левые символы?
(левые сиволы - все кроме латинских букв, кирилилцы и символов: "!", "$", "@", "(",")","<",">" ) | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 19:57)
| | можно так попробовать
"#^[a-z\!\$\@\(\)\<\>]{3,25}|[а-яё\!\$\@\(\)\<\>]{3,25}$#i"
| но наверное надо ещё добавлять хотя-бы - и _ и можно ' вдруг будет Д'артаньян :) | |
|
|
|
|
|
|
|
для: EXP
(31.10.2007 в 20:20)
| | нет, не работает...
просто 'фффф' - не пропускает | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 19:57)
| | Если бы не работало, я бы, наверное, не стал код показывать...
Как Вы это применяете? | |
|
|
|
|
|
|
|
для: kasmanaft
(31.10.2007 в 15:57)
| | - - - | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 20:17)
| | кодировка не утф8 случайно ? там с русскими буквами вообще может так не получиться | |
|
|
|
|
|
|
|
для: EXP
(31.10.2007 в 20:34)
| | =) UTF-8
я как то даже об этом не подумал..... и что? теперь использовать iconv перед проверкой? =) | |
|
|
|
|
|
|
|
для: ProtoTeeP
(31.10.2007 в 20:49)
| | вообще-то говорят должен помогать модификатор "u" ,
но мне не помогло
если есть поддержка mbstring-функций , там нет preg но есть ereg
например такая просто проверка делается функцией mb_eregi( string pattern, string string [, array regs] ) например.
только бывает нужно перед этим выставить установки для mbstring,
если просто не работает тогда :
var_dump(mb_list_encodings()) ; - просто список поддерживаемого
var_dump(mb_regex_encoding()) ; кодировка по умолчанию или устанавливать её
var_dump(mb_regex_set_options()) ; установленные модификаторы или их установка | |
|
|
|
|
|
|
|
для: EXP
(31.10.2007 в 21:03)
| | =) я лучше переконвектирую на время и все.. =) | |
|
|
|
|
|
|
|
для: EXP
(31.10.2007 в 21:03)
| | попробуй выражение kasmanaft'a так
<?
if (mb_eregi("^(?=[^a-z]+$|[^а-яё]+$)(?=[0-9a-zа-яё+@_=!$*-]+$)([^a-zа-яё]*[a-zа-яё]){3,}$", $msg))
echo 'ok';
|
| |
|
|
|