webForumDet fria alternativet

Hjälp med autofill och lowercase och replace

JavaScript

2 svar · 959 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

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">
Medlem sedan aug. 20039 340 inlägg
#2

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å.

Medlem sedan dec. 20011 860 inlägg
#3

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.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)