Avatar billede cygnet Praktikant
16. januar 2008 - 09:36 Der er 11 kommentarer og
1 løsning

Skriv et automatisk alias ud fra input

Jeg skal have lavet to input felter. I det ene indtaster man f.eks.

Rød Ålborg

I det andet input felt skal den så mens man skriver, så skrive

roed-aalborg

Er det noget der er til at lave?

/Kristian Sørensen
Avatar billede fennec Nybegynder
16. januar 2008 - 09:48 #1
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function alias(fEle)
{
    tmp = fEle.value.toLowerCase()
    tmp = tmp.replace("æ","ae")
    tmp = tmp.replace("ø","oe")
    tmp = tmp.replace("å","aa")
    tmp = tmp.replace(" ","-")
    fEle.form.text2.value = tmp
}
//-->
</SCRIPT>
<form name="myForm" method="post" action="<%= scriptname %>">

<input type="Text" name="text1" value="" onkeyup="alias(this);" onchange="alias(this);"><br>
<input type="Text" name="text2" value="">

</form>
Avatar billede fennec Nybegynder
16. januar 2008 - 09:49 #2
Hovsa. Du skal ikke have <%= scriptname %> med:
<form name="myForm" method="post" action="enSide.htm">
Avatar billede cygnet Praktikant
16. januar 2008 - 10:13 #3
Virker ganske fint - men kun med det første ø eller først mellemrum, ved andet tegn af et der er brugt før skriver den bare det samme.
Avatar billede fennec Nybegynder
16. januar 2008 - 10:24 #4
Så bruger vi da bare regexp i stedet:

function alias(fEle)
{
    tmp = fEle.value.toLowerCase()
    tmp = tmp.replace(new RegExp("æ", "gi"),"ae")
    tmp = tmp.replace(new RegExp("ø", "gi"),"oe")
    tmp = tmp.replace(new RegExp("å", "gi"),"aa")
    tmp = tmp.replace(new RegExp(" ", "gi"),"-")
    fEle.form.text2.value = tmp
}
Avatar billede olebole Juniormester
16. januar 2008 - 22:59 #5
<ole>

- eller:

function alias(fEle)
{
    tmp = fEle.value.toLowerCase();
    tmp = tmp.replace(/\u00c6/g,"AE");
    tmp = tmp.replace(/\u00e6/g,"ae");
    tmp = tmp.replace(/\u00d8g,"OE");
    tmp = tmp.replace(/\u00f8/g,"oe");
    tmp = tmp.replace(/\u00c5/g,"AA");
    tmp = tmp.replace(/\u00e5/g,"aa");
    tmp = tmp.replace(/ /g,"-");
    fEle.form.text2.value = tmp
}

- og for ikke at drive brugeren til vanvid, bør du undgå at udskifte tegnene on-the-fly - og derfor slette din onkeyup-handler. Det ville hæve brugervenligheden betydeligt  ;o)

/mvh
</bole>
Avatar billede roenving Novice
17. januar 2008 - 01:33 #6
-- og hvad vil så gøre, hvis der bruges ü eller ñ ?-)

>>ole

-- den toLowerCase skal vel slettes:

function alias(fEle)
{
    tmp = fEle.value;
    tmp = tmp.replace(/\u00c6/g,"AE");
    tmp = tmp.replace(/\u00e6/g,"ae");
...
Avatar billede olebole Juniormester
17. januar 2008 - 01:55 #7
- sæ'føl'somt  ;o)
Avatar billede olebole Juniormester
17. januar 2008 - 01:59 #8
- og til det første, señor ... ehhhh ... senjor  ;D

tmp = tmp.replace(/\u00f1/g,"nj");
Avatar billede fennec Nybegynder
17. januar 2008 - 08:24 #9
Lowercase skal netop med.

Rød Ålborg (med stort)
Skal jo bliver til:
roed-aalborg (med lille)

Så alle replace på stort kan også fjernes:
function alias(fEle)
{
    tmp = fEle.value.toLowerCase();
    tmp = tmp.replace(/\u00e6/g,"ae");
    tmp = tmp.replace(/\u00f8/g,"oe");
    tmp = tmp.replace(/\u00e5/g,"aa");
    tmp = tmp.replace(/ /g,"-");
    fEle.form.text2.value = tmp
}
Avatar billede olebole Juniormester
17. januar 2008 - 21:24 #10
Åge Øvlidsen synes nu ikke, det skal med  =)
Avatar billede fennec Nybegynder
28. januar 2008 - 09:30 #11
Det må så være op til cygnet at bestemme om han vil have den med eller ej :o)
Avatar billede cygnet Praktikant
03. juni 2011 - 11:08 #12
Kan du ligge et svar?
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