Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: semya от 16 Января 2003, 18:24:56
-
не силен в регулярных выражениях, поэтому взываю о помощи....
прикрутил к сайту валидатор на DOM о котором читал на сайт-мейкере, вот и хочу чтоб, скрипт проверял правильность ввода такой строки: /support/index.php в текстовое поле, т.е. что мне нужно - это регулярное выражение, которое проверит, что введенная строка состоит из кусков типа слэш+буквы и точки...
заранее благодарен
-
/^[a-z\\/\\.]*$/i
-
Большое спасибо за ответ, но увы, он не заработал, я так предполагаю, что это связано со скриптом, или вернее с тем как отрабатывает скриптовая конструкция value.match(pattern), ведь вот например в этом скрипте такое регулярное выражение [^A-Za-z -]+ означает любые алфавитные символы и символ пробела, хотя в действительности по-моему это не так, рассудите пожалуйста... скрипт находится здесь http://sitemaker.ru/coding/dhtml/formsvalidation/, или я чего-то недочитал, или... даже не знаю, не хочется возвращаться к серверной валидации
-
semya
Может быть ты опечатался, но конструкция
[^A-Za-z -]+
означет ВСЕ КРОМЕ алфавитных символов, пробела и минуса.
-
Xander
согласен так и есть, читаю доки по регэкспам, спрашиваю на форумах, так и есть все КРОМЕ...
но как не крути а скрипт отрабатывает наоборот, возможно дело все-таки с контрукцией value.match(pattern) в JavaScript?
-
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;
}
даже не знаю, не хочется возвращаться к серверной валидации
провекра у клиента нужна для удобства пользователей, а без серверной проверки тебе без труда напакостит любой начинающий программер
-
первый раз такую конструкцию вижу. Где ты о ней прочел ?
а нашел http://sitemaker.ru/coding/dhtml/formsvalidation/ (неплохая статья)
value.match(pattern) возвращает true или false ?
-
Помнится мне, что php.spb.ru лежит неплохой хелп по РНР в формате chm, но там же есть нормальное описание, как правильно пользоваться regular expressions, почти самоучитель :-) скачай и почитай. Вообще если не получается, попробуй сделать что-то простое, разберись, что возвращает функция, напиши пару простых регэкспов, добейся ожидаемого результата, а потом уж пиши свой код.
-
http://www.citforum.ru/internet/perl_tut/re.shtml
http://php.spb.ru/php/regexp.html
-
спасибо посмотрю, попробую поэтапно разобраться с этой конструкцией, но дело в том, что value.match(regexp) - это вовсе не пхп-шная конструкция, это JavaScript...
Макс
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
-
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
конечно
-
semya
Так ты считаешь, что все равно стоит делать вторую проверку на стороне сервера?
Не стоит, а обязательно надо!!!!
-
semya
но увы, он не заработал
- а я говорю работает!
$str = "sdfg/sdfJKG...gawrg/sadIUGHgds.hsgd";
if (preg_match("/^[a-z\\/\\.]*$/i",$str)) echo "1"; else echo "0";
?>
-
форум слеши съел, почему не кормите :)
-
два конечно в пхп работает, и я о том же, а вот в том скрипте не работает, мож кто посмотрит почему, я не могу понять...
http://sitemaker.ru/coding/dhtml/formsvalidation/
-
это вовсе не пхп-шная конструкция, это JavaScript...
тебе не Javascript надо знать, а регулярные перлсовместимые выражения. Твои ошибки за тебя вряд ли исправлять будет. А вообще лучше проверку проводить на сервере и на клиенте.