Bonjour,
J'ai un peu petit problème pour générer un hyperlink lorsque que l'utilisateur rentre une chaine commencant par http://...
J'ai donc un script jquery qui me permet de transformer donc une adresse text en hyperlink :
var t = $("#add").val();
var regex = /(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?)/ig
var title = t.replace(regex,"<a class='link' href='$1' target='_blank'> $1 </a>");
$("#add").val(title);
Mon champ input :
<paper-input name="title" id="add" label="Add a note"></paper-input>
Le problème étant que si l'utilisateur rentre par exemple : http://google.fr
J'obtiens : <a class='link' href='http://google.fr' target='_blank'> http://google.fr </a>
et non : http://google.fr en lien clikable.
Ma question étant : comment prendre en compte les balises ?
Je précise que j'ai déjà utilisé :
$("#add").append(title);
$("#add").html(title);
Ca ne marche pas
Merci
please
Je pense qu'il faut déjà fiabiliser ta regex, qui ne marchera pas dans tous les cas.
Voici la regex generique pour une URI:((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))
Si tu veux un regex spécifique http, https:((?:https?:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))
Tu peux utiliser le site http://www.debuggex.com/ pour les comprendre.
Avec celles-ci, il ne te restera qu'à concaténer les matching groups 2, 3, et 4, en gros $2$3$4
+ Tu enlèves ce putain de smiley en remplaçant par : (
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
Le détail est expliqué ici.
Salut merci beaucoup de ta réponse, c'est effectivement plus clair maintenant
Cependant j'ai une petite erreur en utilisant ton regex : Uncaught SyntaxError: Unexpected token ?
Je ne sais pas exactement d'ou cela peut venir, pourrais tu m'aider une derniere fois ? merci