URL Rapidshare не совпадает правильно - PullRequest
0 голосов
/ 24 мая 2011

Я пытаюсь убедиться, что URL Rapidshare действителен, когда пользователь отправляет его через мою форму.

Это регулярное выражение, которое я придумала до сих пор:

http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9\._-]+

Ссылка на Rapidshare выглядит следующим образом:

http://rapidshare.com/files/168501977/some_random-file.zip

Мой шаблон соответствует, но не совсем правильно.Например, если мы используем этот ввод:

http://rapidshare.com/files/168501977/some_random-file.zip£%^$

Он все равно будет совпадать, используя функцию PHP preg_match(), и позволит ему пройти, даже если в конце URL-адреса есть недопустимые символы.Я хочу, чтобы шаблон соответствовал всему вводу, а не только случайной длине, которая соответствует.

Любая помощь будет оценена, ура!

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Вам нужно привязать шаблон регулярных выражений. Используйте ^ для привязки начала и $ для привязки конца. Таким образом, шаблон становится:

^http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9\._-]+$

Это предотвращает частичное совпадение строки, как в примере.

0 голосов
/ 24 мая 2011

Проверьте начало и конец строки, используя ^ и $. Пример:
^ht{2}p:\/{2}rapidshare\.com\/files\/\d+\/[\.a-zA-Z_-]+$

...