|
|
|
| Подскажите, что не так в этой регулярке?
if(!preg_match("~[a-zа-я0-9]{3,10}~i", $name))
{
echo "Имя введено верно!<br>";
exit;
}
else
{echo 'не Верно'; exit;} | |
|
|
|
|
|
|
|
для: (sandr)
(13.03.2011 в 13:27)
| | Не указаны привязки к началу и концу строки
<?php
if(!preg_match("~^[a-zа-я0-9]{3,10}$~i", $name))
{
echo "Имя введено верно!<br>";
exit;
}
else
{echo 'не Верно'; exit;}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.03.2011 в 13:31)
| | Спасибо, всё работает. Но вот только почему-то с русскими буквами проблемы. Если ввожу их, то пишет ошибка( | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 16:33)
| | А что за ошибка выводится (или имеется в виду, что логин не проходит проверки)? | |
|
|
|
|
|
|
|
для: cheops
(13.03.2011 в 16:40)
| | Да, логин не проходит проверку. Вот весь код
if(preg_match("~^[a-zа-я0-9]{3,10}$~i", $_POST['name']))
{
echo "Верно!<br>";
}
else
{
echo 'не верно';
}
echo '<form action="1.php" method="POST">
<input type="text" name="name">
<input type="submit" value="OK">
</form>'; | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 16:47)
| | ~^[A-zА-я0-9]{3,10}$~i
i выполняет как бы "пост-проверку" введенных данных, разрешая "IgnoreCase". Сама же регулярка на машинном уровне выполняется в своем теле, ограниченном спецсимволами, в данном случае ~.
Это объяснение не совсем точно, но это - на грани шаманского бубна. | |
|
|
|
|
 964.1 Кб |
|
|
для: Deed
(13.03.2011 в 17:46)
| | Блин.. это тоже не подходит(( В прикреплённом файле видеоскрин. | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 18:29)
| | Попробуй эту:
^[\w\dа-яА-Я-_]+\s?[a-zA-Zа-яА-Я0-9-_]+$
Она позволяет одно- и двухсловный логин вводить.
Если не работает, нужно показать info о сборке php cheops'y
Ну, аз здесь http://gskinner.com/RegExr/ - истина в последней инстанции. | |
|
|
|
|
|
|
|
для: Deed
(13.03.2011 в 19:50)
| | Пишу так
if(preg_match("/^[\w\dа-яА-Я-_]+\s?[a-zA-Zа-яА-Я0-9-_]+$/", $_POST['name'])) .....
Выкидывает ошибку
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 17 in Z:\home\my-blog2.ru\www\1.php on line 6
Тесты провожу на денвере. | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 20:03)
| | Тире после 9-ки и Я вынесете лучше вперед, или экранируйте их при помощи \. | |
|
|
|
|
|
|
|
для: cheops
(13.03.2011 в 20:08)
| | так?
/^[\w\dа-яА-\-Я_]+\s?[a-zA-Zа-яА-Я0-\-9_]+$/
(показывает туже ошибку) | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 20:21)
| | Странно, у меня кстати, ни одно из ваших регулярных выражений ошибку не показывает. У вас какой версии PHP? | |
|
|
|
|
|
|
|
для: cheops
(13.03.2011 в 20:27)
| | PHP Version 5.2.12
На другом форуме подсказали поставить модификатор u и всё заработало. Т.е. выражение получается такое ~^[a-zа-я0-9]{3,10}$~iu | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 20:31)
| | Всем спасибо) Модеры, закройте темку пожалуйста) | |
|
|
|
|
|
|
|
для: (Sandr)
(13.03.2011 в 20:31)
| | Оффтоп, но лучше использовать windows-1251. И страницы легче, и все мыслимые шрифты, включая узелковое письмо майя, поддерживаются. | |
|
|
|
|
|
|
|
для: Deed
(14.03.2011 в 02:06)
| | Не всегда возможно, код здорово усложнится при вводе в систему нескольких языков. | |
|
|
|
|
|
|
|
для: cheops
(14.03.2011 в 12:45)
| | Ни сколько!
Если страница на win-1251, то уже не важно, в какой кодировке MySQL - иврит, арабская вязь, чайна и джапан с кориа - все отображается корректно.
Я проверял это на всех сайтах, к которым имею доступ как дэвэлопер.
Хотя да, для гарантии нужно и базы делать в 1251.
С тем же пресловутым UTF-8 с его псевдоуниверсальностью связываться - вчерашний день. | |
|
|
|
|
|
|
|
для: Deed
(14.03.2011 в 18:18)
| | Хм... любопытная точка зрения... А как строки на других языках в MySQL, если они будут в win-1251 таблицах? | |
|
|
|
|
|
|
|
для: cheops
(14.03.2011 в 20:11)
| | А они не в win-1251, они в cp-1251 general_ci
Попробуйте даже на локал хосте. | |
|
|
|
|
|
|
|
для: Deed
(15.03.2011 в 00:59)
| | Пропустил слово в предыдущем посте. А как строки на других языках будут сортироваться? | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 11:23)
| | В смысле? | |
|
|
|
|
|
|
|
для: Deed
(15.03.2011 в 11:29)
| | Лежит немецкий язык в таблице с кодировкой cp1251, как его отсортировать конструкцией ORDER BY, чтобы строки сортировались в соотвествии с порядком немецкого алфавита? utf-8 это сделает с легкостью. | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 11:40)
| | М-да, интересно. Ни разу не сталкивался с подобной задачей.
Если не лень, приведите, пожалуйста, пример, где требуется такая сортировка. И еще, я понял, в таблице нет цифрового поля id? | |
|
|
|
|
|
|
|
для: Deed
(15.03.2011 в 15:05)
| | Собственно задача одна - создание многоязыкового сайта. Есть два подхода - отдельные таблицы для разных языков или одна таблица для всех языков. Такая таблица обычно использует UTF-8, так как позволяет безболезенно сортировать данные на разных языках, причем все они сортируются корректно. Если мы будем использовать win-1251, у нас корректно будет сортироваться только русский текст, а все остальные будут выводиться в разнобой. Т.е. id может и быть, но весь текст на разных языках навален в одну таблицу, и иногда нужно выводить списки статей, то на одном, то на другом языках и они должны быть правильно отсортированы. Мне кажется без UTF-8 здесь будет сложно обойтись (если не рассматривать вариант с несколькими таблицами под разные языки). | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 15:33)
| | Совершенно верно! Все сказанное совершенно верно. Просто передо мной никогда подобные задачи не стояли и, к тому же, редко кто "валит все в одну таблицу". Я тут провел эксперимент, и действительно, немецкий грешит в cp_1251.
Еще раз пардон за оффтоп.
[поправлено модератором: новая ветка выделена в новую тему Запрет символов < и >] | |
|
|
|