A aleborg Medlem sedan jan. 2001 3 341 inlägg Trådstart 9 apr. 2002 22:32 #1 Har ett script som ser ut så här:
<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,
"<a href=\"$1\" target='_blank'>$1<\/a>");
s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_]+)/gi,
"<a href=\"http://$1\" target='_blank'>$1</a>");
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\w+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\w\.]+@[\w+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
</script>
men om en url innehåller flera _ så bryts länken och om länken innehåller - så bryts den också! hur ska scriptet se ut?
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Prova så här;
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,
"<a href=\"$1\" target='_blank'>$1<\/a>");
s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_]+)/gi,
"<a href=\"http://$1\" target='_blank'>$1</a>");
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\w\.]+@[\w+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Ahh... jag testade bara med en http-länk. Prova detta;
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,
"<a href=\"$1\" target='_blank'>$1<\/a>");
s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_]+)/gi,
"<a href=\"http://$1\" target='_blank'>$1</a>");
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\S\.]+@[\S+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
A aleborg Medlem sedan jan. 2001 3 341 inlägg nix den klipper fortfarande på - på http länkar
http://www.spelar.nu/contact.htm
E eas Medlem sedan sep. 2001 269 inlägg En liten instcksfråga:
Vad menas med runat=server? Hur funkar det?
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Precis som det antyder är det ett scriptblock som skall köras på servern. Du kan alltså skriva en ASP-sida där du normalt använder vbscript, men sedan kanske du vill utnyttja en funktion du har skrivit i JavaScript, vilket du kan göra på detta vis. Själva script-blocket kommer sedan (precis som resterande ASP-kod) att plockas bort från det data (resten av sidan) som skickas till användaren och bara ev. output från scriptet blir kvar. Försöker du däremot använda det på en vanlig html-sida som inte server-parse'as kommer koden att följa med till användaren.
E eas Medlem sedan sep. 2001 269 inlägg Wao!
Jag trodde JavaScript bara gick att köra client-side.
A aleborg Medlem sedan jan. 2001 3 341 inlägg Någon som vet svaret på min fråga?
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Sorry, missade ditt inlägg emellan. Missade även att prova med bara www istället för http://www.
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,
"<a href=\"$1\" target='_blank'>$1<\/a>");
s_str = s_str.replace(/\b(www\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http://$1\" target='_blank'>$1</a>");
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\S\.]+@[\S+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
Exempel
A aleborg Medlem sedan jan. 2001 3 341 inlägg J Jojoxx Medlem sedan juni 2000 4 308 inlägg Scriptet är hårdstyrt till www, inte ww.
Detta blir inte vackert, men det bjuder vi på. Orkar inte slita mer än nödvändigt
function edit_hrefs(s_html){
// use regular expressions to look for
// e_mail addresses and urls
s_str = new String(s_html);
if(s_str.toLowerCase().substring(0,7)!="http://"){
s_str = s_str.replace(/\bhttp\:\/\/(\.[\w+\.\:\/\_]+)/gi,
"http\:\/\/¬¤¸$1");
}
s_str = s_str.replace(/\b(http\:\/\/\S+\.[\w+\.\:\/\_]+)/gi,
"<a href=\"$1\" target='_blank'>$1<\/a>");
if(s_str.substring(0,2)!="<a"){
s_str = s_str.replace(/\b(www\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http://$1\" target='_blank'>$1</a>");
}
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\S\.]+@[\S+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
A aleborg Medlem sedan jan. 2001 3 341 inlägg Jesper T Medlem sedan nov. 2001 7 144 inlägg hur lägger man in denna funktion i ett textstycke då?
Response.Write edit_hrefs(strTextStycke)
Jesper T Medlem sedan nov. 2001 7 144 inlägg Ööööhhhh... Är inte detta ett javascript?
eller jo det är det ja.... arghh såhär gör du då
<Script language="javascript1.2">
function edit_hrefs(s_html){
// use regular expressions to look for
// e_mail addresses and urls
s_str = new String(s_html);
if(s_str.toLowerCase().substring(0,7)!="http://"){
s_str = s_str.replace(/\bhttp\:\/\/(\.[\w+\.\:\/\_]+)/gi,
"http\:\/\/¬¤¸$1");
}
s_str = s_str.replace(/\b(http\:\/\/\S+\.[\w+\.\:\/\_]+)/gi,
"<a href=\"$1\" target='_blank'>$1<\/a>");
if(s_str.substring(0,2)!="<a"){
s_str = s_str.replace(/\b(www\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http://$1 \" target='_blank'>$1</a>");
}
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\S+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\" target='_blank'>http\:\/\/www$1</a>");
s_str = s_str.replace(/([\S\.]+@[\S+\.?]*)/gi,
"<a href=\"mailto\:$1\" target='_blank'>$1</a>");
return s_str;
}
var strTextStycke = "Text blabla blabakbkabkabkkjfsdfjk";
document.write(edit_hrefs(strTextStycke));
</Script>
kanske vet ej är inte så haj på javascript
Jesper T Medlem sedan nov. 2001 7 144 inlägg Detta funkade utmärkt: Response.Write edit_hrefs(strTextStycke)
Tack, då slapp jag strula med asp-regexp osv. Det funkar perfa!!!
Jesper T Medlem sedan nov. 2001 7 144 inlägg Jag kör med run at server också så slipper scriptet stå med i html-koden = smart