Maar ik wil dat als iemand nos.nl typt, dit ook werkt.
En bij www.nos.nl ook.
Kijk dus vooral naar het .nl en .com (rest is niet nodig).
Hoe moet die regex dan worden?
[size=xsmall]Toevoeging op 16/03/2021 06:27:51:[/size]
Je ziet in bovenstaand bericht dat www.nos.nl wél wordt omgezet naar een link, maar nos.nl niet.
Dat moet dus ook. Net als op Twitter. Maar daar kon ik het ook niet vinden in die rotzooi-broncode ;)
Voor zover ik kan zien klopt die regex gewoon.
Handig tooltje om je te helpen regexen te schrijven, testen en begrijpen: https://regexr.com/5olfa
Zoals je ziet word alles gewoon netjes vervangen, gaat het niet ergens anders in het script fout?
Iets meer broncode kan helpen.
Overigens, de broncode van Twitter is geen rotzooitje, het is gewoon minified (gecomprimeerd) en maak waarschijnlijk gebruik van een aantal frameworks. Geen ongebruikelijke strategie maar dat maakt het wel wat lastig lezen.
// zet alle URLs om in linkjes in de <p>
// Get each div
$('p.fromuser').each(function(){
// Get the content
$(this).html($(this).html().replace(/(?<=\s|$)([\w.]+(.nl|.com))(?:\s|$)/ig, '<a href="https://$1">$1</a> '));
});
Je blijft dus nog steeds de variant gebruiken die je nu al hebt, en deze voeg je daaraan toe.
Dus:
// zet alle URLs om in linkjes in de <p>
// Get each div
$('p.fromuser').each(function(){
// Get the content
$(this).html($(this).html().replace(/(https?:\/\/.+?)(?:\s|$)/ig, '<a href="$1">$1</a> '));
$(this).html($(this).html().replace(/(?<=\s|$)([\w.]+(.nl|.com))(?:\s|$)/ig, '<a href="https://$1">$1</a> '));
});
Goedemiddag heren.
Ik kom hier terug, want Apple's Safari-gebruikers kunnen de website niet gebruiken, want de onderste regex geeft een foutmelding in Safari.
Foutmelding
SyntaxError: Invalid regulari expression: invalid group specifier name (anonieme functie)