Помощник
|
Регулярные выражения, в php-скрипте |
Дилетант_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
Banderas |
16.12.2011, 19:24;
Ответить: Banderas
Сообщение
#2
|
|
попробуй сам создать
буквы это [php][A-zА-я][/php] цифры [php][0-9][/php] точка, пробел, подчеркивание, минус [php][\.\s_\-][/php] |
|
|
matroskin8 |
16.12.2011, 19:27;
Ответить: matroskin8
Сообщение
#3
|
|
"^" и "$" - это якоря, обозначающие начало и конец строки соответственно.
"+" - это квантор, который говорит, что должен быть как минимум 1 символ в проверяемой строке. Сама регулярка может быть такой: [php]$pattern = '/^[\d\w\._-\s]+$/i';[/php] Как пример работы - простой скрипт: [php]<?php if($_POST['submit']){ $pattern = '/^[\d\w\._-\s]+$/i'; if(preg_match($pattern, $_POST['text'])) echo 'OK'; else echo 'Not OK'; } ?> <form method="post"> <input type="text" name="text" /> <input type="submit" name="submit" /> </form>[/php] |
|
|
Дилетант_mw
|
Сообщение
#4
|
|
Благодарю, ребята за подробный ответ. Буду пробовать.
Хотя хотел уже готовую регулярку получить, а мне "удочку" дали. Всё правильно! |
|
|
matroskin8 |
16.12.2011, 19:56;
Ответить: matroskin8
Сообщение
#5
|
|
Так вот она - готовая... из предыдущего поста:
[php]$GLOBALS['opt_nameletters']='/^[\d\w\._-\s]+$/i'; if (!preg_match($GLOBALS['opt_nameletters'],$newname)) error(MSG_e_u_cyrforbidden);[/php] |
|
|
Дилетант_mw
|
Сообщение
#6
|
|
|
|
|
matroskin8 |
17.12.2011, 9:56;
Ответить: matroskin8
Сообщение
#7
|
|
А, не увидел, что надо еще и кириллица
Нет, так не совсем точно... правильнее так (добавить еще модификатор u, если работаешь с юникодом, если кодировка кириллическая, то этот модификатор не нужен): [php]$pattern = '/^[a-zа-я\d\._-\s]+$/ui';[/php] |
|
|
Дилетант_mw
|
Сообщение
#8
|
|
matroskin8, благодарю, уважаемый, за подробное разъяснение. Для младенца всё разжевал, как добрый родитель.
Ну, а я, как послушный дитя, посмотрел-таки теорию регулярных выражений. И сейчас это уже не темный лес и два китайца. matroskin8, вижу убрал \w и заменил на a-z. \w - спецсимвол, который призван заменить целый символьный класс, в него входят все символы, которые могут входить в слово, обычно это [a-zA-Z_], хотя много может зависеть от установленной локали, поддержки юникода и т.д. Тестирую $pattern = '/^[a-zа-я\d\._-\s]+$/ui'; $_POST['text'] = "Иванова Анна" Не проходит. Not Ok Даже модификатор u убирал. Потому что кириллица у меня. $pattern = '/^[А-я\d\w\._-\s]+$/i'; $_POST['text'] = "Иванова Анна" Проходит - Ok |
|
|
matroskin8 |
17.12.2011, 20:19;
Ответить: matroskin8
Сообщение
#9
|
|
|
Тестирую $pattern = '/^[a-zа-я\d\._-\s]+$/ui'; $_POST['text'] = "Иванова Анна" Не проходит. Not Ok Даже модификатор u убирал. Потому что кириллица у меня. Странно... У меня работает, как и положено. Ну, используй тогда указанный ниже вариант, раз он работает. Кстати, может будет интересен урок (есть и в формате видео) по составлению регулярки для e-mail - Валидация e-mail на лету с использованием jQuery
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
База профилей+топики для Xrumer 12, регулярные обновления, скидки, бонусы. | 98 | xrumermaster | 48921 | 15.9.2019, 0:47 автор: -xrumer-master- |
|
База профилей+топики+гостевые+рефспам для Xrumer 12.ххх, регулярные обновления | 50 | xrumer-master | 12783 | 15.9.2019, 0:00 автор: xrumer-master |
|
Нужны рерайтеры. Простые и регулярные заказы. Оплата 30-35 рублей / 1000 символов б.п. |
3 | 13sanek | 1919 | 9.5.2017, 12:26 автор: Gadraser |
Текстовая версия | Сейчас: 18.4.2024, 9:28 |