AsaMedlem sedan dec. 20011 860 inlägg Har två inputfält varav när jag skriver i det ena så ska den texten hamna i fält två och där skall texten bli till lowercase och alla åäö ÅÄÖ skall bytas mot aao samt mellanskal skall bytas mot _. Hur gör jag detta. Har lowercase klart med inte replace.
<input type="text" name="falt1" id="falt1" onkeyup='document.getElementById("falt2").value = this.value.toLowerCase();'>
<input type="text" name="falt2" id="falt2">
I sin enklaste form:
toLowerCase().replace(/[åä]/ig, 'a').replace(/[ö]/ig, 'o').replace(/\s/ig, '_')
Dock får du tänka på två saker. Dels så finns det en massa tecken som koden inte filtrerar, som tyska ü, franska é, è, à osv. Vad du bör göra är att bara tillåta vissa tecken (T ex a-z, 0-9, _) och förbjuda alla andra tecken och inte skicka iväg formuläret om fältet innhåller andra tecken. Alt. radera andra tecken utöver den ersättning du vill göra nu.
toLowerCase().replace(/[åä]/ig, 'a').replace(/[ö]/ig, 'o').replace(/\s/ig, '_')[b].replace(/[^a-z0-9_]/g, '')[/b]
Dels så går det busenkelt att ta sig förbi kontrollen, därför bör du kontrollera saker och ting på serversidan också.
AsaMedlem sedan dec. 20011 860 inlägg Okej, tackar men denna kontrollen görs ju för den som skall administrera sidan. Så den vet även att man inte skall använda åäö men detta skall göra så denne slipper skrivs saker fler gånger.