aleborgMedlem sedan jan. 20013 341 inlägg 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?
JojoxxMedlem sedan juni 20004 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;
}
JojoxxMedlem sedan juni 20004 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;
}
aleborgMedlem sedan jan. 20013 341 inlägg nix den klipper fortfarande på - på http länkar
http://www.spelar.nu/contact.htm
easMedlem sedan sep. 2001269 inlägg En liten instcksfråga:
Vad menas med runat=server? Hur funkar det?
JojoxxMedlem sedan juni 20004 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.
easMedlem sedan sep. 2001269 inlägg Wao!
Jag trodde JavaScript bara gick att köra client-side.
aleborgMedlem sedan jan. 20013 341 inlägg Någon som vet svaret på min fråga?
JojoxxMedlem sedan juni 20004 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
aleborgMedlem sedan jan. 20013 341 inlägg hmm, det funkar inte hos mig :(
http://www.spelar.nu/contact.htm
JojoxxMedlem sedan juni 20004 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;
}
aleborgMedlem sedan jan. 20013 341 inlägg Tack Jojoxx men det tidigare funkade, missade att jag hade skrivit ww istället för www :r :r :r
Jesper TMedlem sedan nov. 20017 144 inlägg hur lägger man in denna funktion i ett textstycke då?
Response.Write edit_hrefs(strTextStycke)
Jesper TMedlem sedan nov. 20017 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 TMedlem sedan nov. 20017 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 TMedlem sedan nov. 20017 144 inlägg Jag kör med run at server också så slipper scriptet stå med i html-koden = smart