Supprimer les “www”, “http://” de la chaîne
Comment puis-je supprimer "www", "http://", "https://" à partir de chaînes à l'aide de Ruby?
J'ai essayé ceci mais ça ne marche pas:
s.gsub('/(?:http?:\/\/)?(?:www\.)?(.*)\/?$/i', '')
Ici ce que je fais dans les Rails:
<%= auto_link(job.description) do |url| url.truncate(25).gsub('http://', '') end %>
Url sont tronqués, mais mon objectif est de supprimer le début de la des liens, tels que "www" ou "http://" si le lien ressemblerait "google.com/somepage/d...", pas comme "http://google.com/some..."
String#sub
- J'ai essayé gsub avec certains regexes j'ai trouvé, mais rien n'a fonctionné. Par exemple ceci: s.gsub('/(?:http?:\/\/)?(?:www\.)?(.*)\/?$/i', ")
- Qu'est-ce que le plus grand problème que vous essayez de résoudre? Voulez-vous rediriger "www.mydomain.com" pour "mydomain.com"?
- J'ai édité votre question, pour l'inclure, mais s'il vous plaît de le modifier pour y inclure exemple d'entrée/sortie qui n'a pas fonctionné comme prévu.
- Merci, j'ai édité ma question. Désolé de ne pas être clair.
Vous devez vous connecter pour publier un commentaire.
Si vous ne souhaitez pas utiliser
s =
, vous devez utilisersub!
s au lieu de tous lessub
s.Les problèmes avec votre code est:
sub
au lieu degsub
et^
dans le début de Regexp donc il ne remplace l'http://
au début, mais laisse ceux au milieu.s.(/^https?\:\/\/(www.)?/,'')
... et.sub(/\/.*$/,'')
pour supprimer le chemin d'accèssub
au lieu degsub
?Cette méthode doit attraper tous les 3 variantes:
strip_url("http://stackoverflow.com")
strip_url("http://stackoverflow.com") #=> "http://stackoverflow.com"