Question à propos de Validation d'URL avec la Regex

J'ai le texte suivant regex qui fait un travail remarquable urls correspondant:

((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)`

Cependant, il ne permet pas de gérer les url sans préfixe, c'est à dire. stackoverflow.com ou www.google.com ne correspondent pas. Quelqu'un sait comment je peux modifier cette expression à ne pas prendre soin si il y a un préfixe ou pas?


EDIT: ma question trop vague? Est-il besoin de plus de détails?


(((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\)))?[\w\d:#@%/;$()~_?\+-=\\\.&]*)

J'ai ajouté un ()? autour de l'protocoles comme Vinko Vrsalovic suggéré, mais maintenant, la regex va correspondre à presque n'importe quelle chaîne, tant qu'il est valide URL caractères.

Ma mise en œuvre de cette est que j'ai une base de données que j'ai à gérer le contenu, et il a un champ qui soit a la plaine du texte, un numéro de téléphone, une URL ou une adresse e-mail. Je cherchais un moyen facile de valider l'entrée afin que je puisse l'avoir correctement formaté, c'est à dire. la création d'ancrage des balises pour l'url/adresse mail, et le formatage du numéro de téléphone la façon dont j'ai les autres nombres mis en forme sur tout le site. Des suggestions?

Je dois ajouter que je n'étais pas suggérer que vous avez réellement le faire, juste vous montrer que cette expression est presque inutile sans la partie
Ce n'moyenne valide dans ce contexte? Que vous devez deviner qui est-il?

OriginalL'auteur Anders | 2008-10-22