String.prototype.linkify = function() {
this.replace(/((ht|f)tp:\/\/)?([^:\/\s]+)\w+.(com|net|org)/gi, '<a href="$&">$&</a>')
}
avec http://www.google.com http://yahoo.com www.facebook.com
il leur correspond à tous, mais je veux facebook à préfixé avec le groupe de protocole si elle n'existe pas. Y at-il un moyen de le faire sans faire deux .replace
?javascript regex pour analyser urls sans protocole
: comment irait ton regex? aussi, pouvez-vous expliquer les paramètres dans la fonction anonyme dans remplacer? –
Les paramètres sont simplement $ &, $ 1, $ 2. Mon idée d'un bon moyen de faire correspondre les URL en général est en dehors de la portée de cette question, car c'est en fait un problème assez difficile. Pour le dire simplement, cependant, je commencerais par une liste complète de tous les TLD, puis je ferais correspondre des choses se terminant par un TLD et des fluffs de chaque côté (c'est plus facile une fois que vous vous rendez compte du TLD). –