Автор Тема: хелп по регулярным выражениям  (Прочитано 7897 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
хелп по регулярным выражениям
« : 16 Января 2003, 18:24:56 »
не силен в регулярных выражениях, поэтому взываю о помощи....

прикрутил к сайту валидатор на DOM о котором читал на сайт-мейкере, вот и хочу чтоб, скрипт проверял правильность ввода такой строки: /support/index.php в текстовое поле, т.е. что мне нужно - это регулярное выражение, которое проверит, что введенная строка состоит из кусков типа слэш+буквы и точки...

заранее благодарен
« Последнее редактирование: 16 Января 2003, 19:08:05 от semya »

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
хелп по регулярным выражениям
« Ответ #1 : 17 Января 2003, 18:31:45 »
/^[a-z\\/\\.]*$/i
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #2 : 18 Января 2003, 13:13:23 »
Большое спасибо за ответ, но увы, он не заработал, я так предполагаю, что это связано со скриптом, или вернее с тем как отрабатывает скриптовая конструкция value.match(pattern), ведь вот например в этом скрипте такое регулярное выражение [^A-Za-z -]+ означает любые алфавитные символы и символ пробела, хотя в действительности по-моему это не так, рассудите пожалуйста... скрипт находится здесь http://sitemaker.ru/coding/dhtml/formsvalidation/, или я чего-то недочитал, или... даже не знаю, не хочется возвращаться к серверной валидации

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #3 : 18 Января 2003, 23:12:48 »
semya
Может быть ты опечатался, но конструкция
[^A-Za-z -]+
означет ВСЕ КРОМЕ алфавитных символов, пробела и минуса.
•••Jah\'d never let us down!•••

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #4 : 19 Января 2003, 15:04:49 »
Xander
согласен так и есть, читаю доки по регэкспам, спрашиваю на форумах, так и есть все КРОМЕ...
но как не крути а скрипт отрабатывает наоборот, возможно дело все-таки с контрукцией value.match(pattern) в JavaScript?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #5 : 19 Января 2003, 15:24:05 »
Цитировать
value.match(pattern)
хмм...
первый раз такую конструкцию вижу. Где ты о ней прочел ?
Я обычно так проверяю:

    number = /(^\\d+$)|(^\\d*[.]?\\d+$)|(^\\d+\\[.]?\\d*$)/;
    if(!number.test(f.price.value)) {
        alert("Please enter a numeric value for the price");
        return false;
    }


Цитировать
даже не знаю, не хочется возвращаться к серверной валидации
провекра у клиента нужна для удобства пользователей, а без серверной проверки тебе без труда напакостит любой начинающий программер
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #6 : 19 Января 2003, 15:31:39 »
Цитировать
первый раз такую конструкцию вижу. Где ты о ней прочел ?
а нашел http://sitemaker.ru/coding/dhtml/formsvalidation/ (неплохая статья)

value.match(pattern)  возвращает true или false ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
хелп по регулярным выражениям
« Ответ #7 : 19 Января 2003, 17:27:03 »
Помнится мне, что php.spb.ru лежит неплохой хелп по РНР в формате chm, но там же есть нормальное описание, как правильно пользоваться regular expressions, почти самоучитель :-) скачай и почитай. Вообще если не получается, попробуй сделать что-то простое, разберись, что возвращает функция, напиши пару простых регэкспов, добейся ожидаемого результата, а потом уж пиши свой код.
работа в Украине

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #9 : 20 Января 2003, 14:39:44 »
спасибо посмотрю, попробую поэтапно разобраться с этой конструкцией, но дело в том, что value.match(regexp) - это вовсе не пхп-шная конструкция, это JavaScript...

Макс
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #10 : 20 Января 2003, 16:50:46 »
Цитировать
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
конечно
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн MadDog

  • Главный Металликолог
  • Ветеран
  • *****
  • Сообщений: 679
  • +0/-0
  • 2
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #11 : 21 Января 2003, 06:37:01 »
semya
Цитировать
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?

Не стоит, а обязательно надо!!!!
So let it be written
So let it be done I\'m creeping death

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
хелп по регулярным выражениям
« Ответ #12 : 21 Января 2003, 10:45:53 »
semya
Цитировать
но увы, он не заработал
- а я говорю работает!
<?php
$str 
"sdfg/sdfJKG...gawrg/sadIUGHgds.hsgd";
if (
preg_match("/^[a-z\\/\\.]*$/i",$str)) echo "1"; else  echo "0";
?>
<form name="f">
<input type="hidden" value="<?=$str?>" name="str">
<script language="JavaScript">
if (document.f.str.value.match(/^[a-z\\/\\.]*$/i)) document.write(1); else document.write(0);
</script>


Результат:

1

1

Цитировать
не хочется возвращаться к серверной валидации
можно подумать что ты ее проводил...

Цитировать
но дело в том, что value.match(regexp) - это вовсе не пхп-шная конструкция

Регулярные выражения - и в африке регулярные выражения
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
хелп по регулярным выражениям
« Ответ #13 : 21 Января 2003, 10:58:14 »
форум слеши съел, почему не кормите :)
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
хелп по регулярным выражениям
« Ответ #14 : 22 Января 2003, 15:24:17 »
два конечно в пхп работает, и я о том же, а вот в том скрипте не работает, мож кто посмотрит почему, я не могу понять...

http://sitemaker.ru/coding/dhtml/formsvalidation/

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28