2013-06-26 9 views

Odpowiedz

59

Jak replace() tworzy/zwraca nowy ciąg zamiast modyfikowania oryginalnego (tt), trzeba ustawić zmienna (tt) równa nowemu ciągowi zwróconemu z funkcji replace.

tt = tt.replace(/,/g, '.') 

JSFiddle

1

Per the docs, replace zwraca nowy ciąg - to nie zmienia ciąg przejechania go.

var tt="88,9827"; 
tt = tt.replace(/,/g, '.'); 
^^^^ 
alert(tt); 
+0

nie działał, człowiek – Leo

+3

@Leo nie faktycznie wpisać jest kursor. – jbabey

4

Po zastąpieniu znaku musisz przypisać do zmiennej.

var tt = "88,9827"; 
tt = tt.replace(/,/g, '.') 
alert(tt) 

W polu alertu to będzie pokazy 88,9827

+0

dziękuję, również, stary!) – Leo

2

Z definicji danej funkcji (http://www.w3schools.com/jsref/jsref_replace.asp):

Replace() metoda przeszukuje ciąg do określonej wartości, lub wyrażenie regularne i zwraca nowy ciąg znaków, w którym wymienione wartości zostaną zastąpione.

Ta metoda nie zmienia oryginalnego ciągu znaków.

Stąd linia: tt.replace(/,/g, '.') nie zmienia wartości tt; to po prostu zwraca nową wartość.

Trzeba zastąpić ten wiersz z: tt = tt.replace(/,/g, '.')

-1

Będzie to wymagało nowej var ttfixed

wówczas pod szczelinę wartości tt i zamień wszystkie wskaźniki poniżej, które są tt do ttfixed

ttfixed = (tt.replace(",", ".")); 
+0

Poświęć trochę czasu na poprawienie formatowania odpowiedzi. – Xan

+0

Dodatkowe nawiasy są zbędne, a ponieważ OP miał nadzieję zmienić oryginalny var, nie ma potrzeby tworzenia nowego. Także jeśli zamierzasz utworzyć nowy, powinieneś dodać 'var' z przodu, aby uniknąć tworzenia globalnego var. – smerny

Powiązane problemy