Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: semya от 16 Января 2003, 18:24:56

Название: хелп по регулярным выражениям
Отправлено: semya от 16 Января 2003, 18:24:56
не силен в регулярных выражениях, поэтому взываю о помощи....

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

заранее благодарен
Название: хелп по регулярным выражениям
Отправлено: rembo от 17 Января 2003, 18:31:45
/^[a-z\\/\\.]*$/i
Название: хелп по регулярным выражениям
Отправлено: semya от 18 Января 2003, 13:13:23
Большое спасибо за ответ, но увы, он не заработал, я так предполагаю, что это связано со скриптом, или вернее с тем как отрабатывает скриптовая конструкция value.match(pattern), ведь вот например в этом скрипте такое регулярное выражение [^A-Za-z -]+ означает любые алфавитные символы и символ пробела, хотя в действительности по-моему это не так, рассудите пожалуйста... скрипт находится здесь http://sitemaker.ru/coding/dhtml/formsvalidation/, или я чего-то недочитал, или... даже не знаю, не хочется возвращаться к серверной валидации
Название: хелп по регулярным выражениям
Отправлено: Xander от 18 Января 2003, 23:12:48
semya
Может быть ты опечатался, но конструкция
[^A-Za-z -]+
означет ВСЕ КРОМЕ алфавитных символов, пробела и минуса.
Название: хелп по регулярным выражениям
Отправлено: semya от 19 Января 2003, 15:04:49
Xander
согласен так и есть, читаю доки по регэкспам, спрашиваю на форумах, так и есть все КРОМЕ...
но как не крути а скрипт отрабатывает наоборот, возможно дело все-таки с контрукцией value.match(pattern) в JavaScript?
Название: хелп по регулярным выражениям
Отправлено: Макс от 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;
    }


Цитировать
даже не знаю, не хочется возвращаться к серверной валидации
провекра у клиента нужна для удобства пользователей, а без серверной проверки тебе без труда напакостит любой начинающий программер
Название: хелп по регулярным выражениям
Отправлено: Макс от 19 Января 2003, 15:31:39
Цитировать
первый раз такую конструкцию вижу. Где ты о ней прочел ?
а нашел http://sitemaker.ru/coding/dhtml/formsvalidation/ (неплохая статья)

value.match(pattern)  возвращает true или false ?
Название: хелп по регулярным выражениям
Отправлено: Yukko от 19 Января 2003, 17:27:03
Помнится мне, что php.spb.ru лежит неплохой хелп по РНР в формате chm, но там же есть нормальное описание, как правильно пользоваться regular expressions, почти самоучитель :-) скачай и почитай. Вообще если не получается, попробуй сделать что-то простое, разберись, что возвращает функция, напиши пару простых регэкспов, добейся ожидаемого результата, а потом уж пиши свой код.
Название: хелп по регулярным выражениям
Отправлено: Alexandr от 20 Января 2003, 08:42:12
http://www.citforum.ru/internet/perl_tut/re.shtml
http://php.spb.ru/php/regexp.html
Название: хелп по регулярным выражениям
Отправлено: semya от 20 Января 2003, 14:39:44
спасибо посмотрю, попробую поэтапно разобраться с этой конструкцией, но дело в том, что value.match(regexp) - это вовсе не пхп-шная конструкция, это JavaScript...

Макс
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
Название: хелп по регулярным выражениям
Отправлено: Макс от 20 Января 2003, 16:50:46
Цитировать
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
конечно
Название: хелп по регулярным выражениям
Отправлено: MadDog от 21 Января 2003, 06:37:01
semya
Цитировать
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?

Не стоит, а обязательно надо!!!!
Название: хелп по регулярным выражениям
Отправлено: rembo от 21 Января 2003, 10:45:53
semya
Цитировать
но увы, он не заработал
- а я говорю работает!
$str = "sdfg/sdfJKG...gawrg/sadIUGHgds.hsgd";
if (preg_match("/^[a-z\\/\\.]*$/i",$str)) echo "1"; else  echo "0";
?>

" name="str">



Результат:

1

1

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

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

Регулярные выражения - и в африке регулярные выражения
Название: хелп по регулярным выражениям
Отправлено: rembo от 21 Января 2003, 10:58:14
форум слеши съел, почему не кормите :)
Название: хелп по регулярным выражениям
Отправлено: semya от 22 Января 2003, 15:24:17
два конечно в пхп работает, и я о том же, а вот в том скрипте не работает, мож кто посмотрит почему, я не могу понять...

http://sitemaker.ru/coding/dhtml/formsvalidation/
Название: хелп по регулярным выражениям
Отправлено: Yukko от 23 Января 2003, 12:58:09
Цитировать
это вовсе не пхп-шная конструкция, это JavaScript...
тебе не Javascript надо знать, а регулярные перлсовместимые выражения. Твои ошибки за тебя вряд ли исправлять будет. А вообще лучше проверку проводить на сервере и на клиенте.