|
|
|
| Может коряво сделал, но работает (почти). Задача - пользователь может вводить русские и латинские буквы, пробелы, тире, слэши для корпуса дома например, точки и цифры. Результат - тот, что и хотелось, за исключением запятой. В этом виде запятую никак не принимает:
if ( !(preg_match("/^([A-Za-z0-9а-яА-Я\/\,\-\s\.\ё\Ё]{4,45})$/i",$_POST["street"])) ){
echo "Укажите свой адрес (улицу, дом) правильно. Допустимы латинские и русские буквы, точки, тире, цифры и пробелы.
Колличество символов - не более 45.";
}
| Как разрешить запятую в этом выражении? | |
|
|
|
|
|
|
|
для: shirker
(23.02.2008 в 11:47)
| | может запятую не надо экранировать? | |
|
|
|
|
|
|
|
для: ddhvvn
(23.02.2008 в 11:58)
| | Без разницы
preg_match("/^([A-Za-z0-9а-яА-Я,\/\-\s\.\ё\Ё]{4,45})$/i",$_POST["street"])
| тоже самое...
Может быть в самом PHP дело? | |
|
|
|
|
автор: _гость_ (23.02.2008 в 12:28) |
|
|
для: shirker
(23.02.2008 в 12:15)
| | Попробуйте вместо запятой сделать "\x2c" | |
|
|
|
|
|
|
|
для: _гость_
(23.02.2008 в 12:28)
| | А зачем Вы "ё" еще экранируете? | |
|
|
|
|
|
|
|
для: _гость_
(23.02.2008 в 12:28)
| | переписал
preg_match("/^([A-Za-z0-9а-яА-ЯЁё\x2c\/\-\s\.]{4,45})$/i",$_POST["street"])
| - не ест запяту((
Вот это пропускает: ул. Зел/ёнабя -дом- .78ukg
Это нет: ул. Зел/ёна,бя -дом- .78ukg | |
|
|
|
|
|
|
|
для: shirker
(23.02.2008 в 13:22)
| | Вы что-то путаете. "Пропускает".
Но вообще, если используете двойные кавычки и "\xXX", то анализатор регулярных выражений уже получит указанный байт в "чистом виде", т.е. в данном случае ",". Точку в [...] можно не эскейпировать.
Да и модификатор "i" тут не нужен - Вы указали все диапазоны без него. | |
|
|
|
|
|
|
|
для: Unkind
(23.02.2008 в 14:25)
| | Пробовал убрать "i", ничего не изменилось. Есть подозрение на сам PHP. Само выражение я не сам придумал, а взял, наверное, даже с этого форума
preg_match("/^([A-Za-z0-9а-яА-ЯЁё\,\/\-\s\.]{4,45})$/i",$_POST["street"])
| Сейчас на локальной тачке записал этот кусок кода: http://x-serv.biz/preg_match.php и запятые норм переваривает. Машина тоже на фрибсд6.2 и с PHP5
На сервере же, где должен работать код, все тоже самое, но не приемлет запятую никак. | |
|
|
|
|
|
|
|
для: shirker
(23.02.2008 в 15:21)
| | Оказалась интересная вещь - почему-то запятая при вводе считалась не как запятая, а как символ , !!!! На другом же сервере - все работало. Может есть в PHP какая-то директива, которая за это отвечает? | |
|
|
|