torsdag den 12. marts 2015

.replace i javascript erstatter kun første indeks


Det man skal vide med metoden .replace er at den tager kun første indeks ([0]) og laver replace på.
Derfor hvis du fx har teksten "5.000.000,00" som du gerne vil parse til float i javascript, og derefter så skal du lave det om til et format som den kan forstå korrekt og parse til float.
Dermed skal du fjerne "." som tusindtals-adskiller, fordi i float er det et komma. Hvis du ikke gør det vil dit float-tal blive 5,00.
Derfor laver du først erstat ALLE "." med ingenting, og erstat "," med "." og derefter lav en parseFloat for at give det korrekte tal.

En nem funktion der kan hjælpe dig i din replace er:

function (valueToReplaceIn, valueToFind, valueToReplaceWith) {
                while (valueToReplaceIn.indexOf(valueToFind) >= 0) {
                    valueToReplaceIn = valueToReplaceIn.replace(valueToFind, valueToReplaceWith);
                }
                return valueToReplaceIn;
            }

Så længe den kan finde det du forsøger at replace i strengen erstatter den det, og vil derfor gradvist få et nyt indeks som indeks 0 ([0]) at replace på, og derved udføre det på alle steder i strengen.

Ingen kommentarer:

Send en kommentar

Kan du lide mit indlæg, har en kommentar, forslag eller andet på hjerte så skriv venligst