webForumDet fria alternativet
Logga in / Bli medlem

Url

JavaScript

1 svar · 173 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1

Jag använder följande kod för att ersätta länkar och mail adresser till url's:

<script language="javascript1.2" runat=server>
function edit_hrefs(s_html){
// use regular expressions to look for 
// e_mail addresses and urls
s_str = new String(s_html);

s_str = s_str.replace(/\bhttp\:\/\/www(\.[\w+\.\:\/\_]+)/gi, 
"http\:\/\/¬¤¸$1");

s_str = s_str.replace(/\b(http\:\/\/\w+\.[\w+\.\:\/\_]+)/gi,
"<img src='../../graphics/misc/icons/icon_link.gif' width='14' height='12' border='0' align='absbottom'><a href=\"$1\" target='_blank'>$1<\/a>");

s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_]+)/gi, 
"<img src='../../graphics/misc/icons/icon_link.gif' width='14' height='12' border='0' align='absbottom'><a href=\"http://$1\" target='_blank'>$1</a>");

s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\w+\.\:\/\_]+)/gi,
"<img src='../../graphics/misc/icons/icon_link.gif' width='14' height='12' border='0' align='absbottom'><a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");

s_str = s_str.replace(/\b(\w+@[\w+\.?]*)/gi, 
"<img src='../../graphics/misc/icons/icon_mailto.gif' width='14' height='12' border='0' align='absbottom'><a href=\"mailto\:$1\" target='_blank'>$1</a>");

return s_str;
}
</script>

Problemet är att mailadresser som innehåller . funkar inte, det som är innan punkten kommer inte med i länken!

Vad gör man???

Medlem sedan juni 20008 205 inlägg
#2

Byt ut /\b(\w+@[\w+\.?]*)/gi mot /([\w\.]+@[\w+\.?]*)/gi så borde det fixa sig.

379 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
250 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)