Вызовите функцию, если в текстовой области найден действительный URL - PullRequest
1 голос
/ 08 февраля 2011

Каков наилучший способ немедленного вызова функции (myFunction ()), как только в текстовое поле введен действительный URL-адрес? Я погуглил, но не нашел ничего, что могло бы помочь. Возможно, лучше использовать регулярное выражение, но мне нужно такое, которое распознает все виды URL:
http://google.tld, www.google.tld, http://www.google.tld Но все еще не считает такие вещи, как «index.php», как URL. Кто-нибудь знает о таком выражении?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2011

Вы могли бы немного побороться, так как было бы так много разных возможностей.Этот будет соответствовать любому URL, который технически является допустимым путем http или https (который включает любой символ в пути после имени домена, любое количество поддоменов и т. Д.)

((http)s?(://))?[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)*(/(.*))?

Если вы хотитечтобы исключить интрасети, вы можете вызвать tld, используя следующее:

((http)s?(://))?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9]+)*(\.[a-zA-Z0-9]{2,4})+(/(.*))?
0 голосов
/ 08 февраля 2011

^ ((?: HTTPS | FTP): \ / \ /)? (. [. \ Ш \] +) ([а-г] {2,4}) $

Также поддерживает ftp;)

0 голосов
/ 08 февраля 2011

это будет соответствовать любому URL, который заканчивается чем-то вроде '.com' или '.ch' (вы должны поддерживать список допустимых TLD)

^(http:\/\/)?([\w\.]+\.)((com)|(ch))$

с javascript, который не нужен forwardslashэкранирование и TLD могут быть менее строгими, например, просто что-то с 2-4 символами.

^(https?://)?([\w\.]+\.)([a-z]{2,4})$

Рассматривая комментарий CanSpice к этому вопросу, трудно разрешить идею разрешения TLD различной длины, поскольку триггер событиястрелять слишком раноЗадержка включения триггера может решить такие проблемы.Точные требования и плюсы / минусы каждого решения должны быть взвешены.

пример по рублю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...