Avatar billede bossen2k Nybegynder
05. oktober 2001 - 01:20 Der er 9 kommentarer og
1 løsning

Fjern web og email adresser fra tekst i et text area

Er der nogle der har prøvet at få fjernet web og email adresser fra et text area, et tekst filter om man vil ?????
Avatar billede aceofspair Nybegynder
05. oktober 2001 - 08:51 #1
???
Tjoe...
Hvis du kunne være LIDT mere specifik, så kunne det da være en fed udfordring

Ace
Avatar billede z42cool Nybegynder
05. oktober 2001 - 09:15 #2
Det kan givetvis gøres med et regular expression, men det ville være rart at vide hvornår du vil gøre det. Er det onSubmit eller ved et tryk på en knap eller hvad?
Avatar billede roenving Novice
05. oktober 2001 - 11:36 #3
/^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/

Dette er en RegExp til Perl, som checker email-adresse, men sådan umiddelbart set, er den også god nok i JavaScript, sådan:

RegExp.test(\"DitFeltNavn\")

hth
jes
Avatar billede bossen2k Nybegynder
05. oktober 2001 - 14:24 #4
For lige at udspecificere :

Web og email adresser skal helt fjernes fra text area ved submit af formen også selv om der ikke står \"http://\" og \"mailto\" foran.
Avatar billede Slettet bruger
05. oktober 2001 - 16:02 #5
<script>
function fjern(frm,tekstfelt) {
felt = frm.tekstfelt.value;
while (felt.indexOf(\"www.\") != -1) {
www = felt.indexOf(\"www.\");
sidsteSpace = felt.substr(0,www + 1).lastIndexOf(\" \");
naesteSpace = felt.substr(www,felt.length).indexOf(\" \");
felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}

while (felt.indexOf(\"@\") != -1) {
sna = felt.indexOf(\"@\");
sidsteSpace = felt.substr(0,sna).lastIndexOf(\" \");
naesteSpace = felt.substr(sna,felt.length).indexOf(\" \");
felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}
return false;
frm.submit();
//Ikke helt sikker på, om ovenstående er ligegyldigt, men dette virker vist!
}
</script>

<form name=\"minForm\" onSubmit=\"return fjern(this,\'tekst\')\">
<textarea name=\"tekst\"></textarea>
</form>
Avatar billede Slettet bruger
05. oktober 2001 - 16:14 #6
Den er ikke helt holdbar, da den fjerner alle ord med \"@\" i og alle ord med \"www.\", men jeg kan ikke klare mere for 30 point. Min hovedpine bliver værre og værre!
Avatar billede Slettet bruger
06. oktober 2001 - 08:10 #7
Her er et bedre script, som fjerner alle ord, der både har et \"@\" og et \".\" i sig. Men scriptet overholder altså ikke den nye W3C standard, hvor man også må have mellemrum i sin mail-adresse. Men på den anden side har jeg aldrig nogensinde set en sådan adresse, og jeg kan heller ikke forestille mig et script, der kunne tage højde for denne standard!

<script>
function fjern(frm,tekstfelt) {
felt = frm.tekstfelt.value;
while (felt.indexOf(\"www.\") != -1) {
www = felt.indexOf(\"www.\");
sidsteSpace = felt.substr(0,www + 1).lastIndexOf(\" \");
naesteSpace = felt.substr(www,felt.length).indexOf(\" \");
felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}

while (felt.indexOf(\"@\") != -1) {
sna = felt.indexOf(\"@\");
punkt = felt.indexOf(\".\",sna);
mell = felt.indexOf(\" \",sna);
if (punkt < mell) {
sidsteSpace = felt.substr(0,sna).lastIndexOf(\" \");
naesteSpace = felt.substr(sna,felt.length).indexOf(\" \");
felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}
else break;
}
frm.tekstfelt.value = felt;
frm.submit();
}
</script>

Og i <form>-koden:
<form name=\"minForm\" onSubmit=\"return false;\">
<textarea name=\"tekst\"></textarea>
<input type=\"submit\" value=\"Indsend\" onClick=\"tjek(this.form,\'tekst\');\">
</form>
Avatar billede Slettet bruger
06. oktober 2001 - 08:26 #8
Det virker ikke, så lad være med at prøve! Jeg er (forhåbentlig) tilbage igen senere i dag, for jeg har en løsning på trapperne!
Avatar billede Slettet bruger
06. oktober 2001 - 14:22 #9
Så fandt jeg endelig ud af det!

<script>
function fjern(frm,tekstfelt) {
felt = frm[tekstfelt].value;

while (felt.indexOf(\"www.\") != -1) {
www = felt.indexOf(\"www.\");
sidsteSpace = felt.substr(0,www + 1).lastIndexOf(\" \");
naesteSpace = felt.indexOf(\" \",www);
if (naesteSpace == -1) naesteSpace = felt.length;
if (sidsteSpace == -1) {
sidsteSpace = 0;
naesteSpace = naesteSpace + 1;
}
felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}

while (felt.indexOf(\"@\") != -1) {
sna = felt.indexOf(\"@\");
punkt = felt.indexOf(\".\",sna);
naesteSpace = felt.indexOf(\" \",sna);
if (naesteSpace == -1 || punkt < naesteSpace) {
sidsteSpace = felt.substr(0,sna).lastIndexOf(\" \");
if (naesteSpace == -1) felt = felt.substr(0,sidsteSpace);
else if (sidsteSpace == -1) felt = felt.substr(naesteSpace + 1,felt.length);
else felt = felt.substr(0,sidsteSpace) + felt.substr(naesteSpace,felt.length);
}
else break;
}
frm[tekstfelt].value = felt;
}
</script>

<form>
<textarea name=\"tekst\"></textarea><br>
<input type=\"button\" value=\"Fjern web- og mailadresser!\" onClick=\"fjern(this.form,\'tekst\');\">
</form>

Og 30 point er rigeligt til mig! :)
Avatar billede bossen2k Nybegynder
18. oktober 2001 - 02:36 #10
Genialt !!!!!
og det virker

tak til phoenixv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester