wyrazenie regularne dla dla wartosci float w JS

0

Jak napisac wyrazenie regularne dla typu float. Dozwolone wartosci np:

1
2
3
albo
1.1
1111111.11
122212321323.23

0

http://stackoverflow.com/questions/1830534/how-to-validate-digits-including-floats-in-javascript
EDIT:
przeczytaj też ostatni komentarz. Musisz też dodać osobny warunek na pojedynczy znak "-" i empty string. Możesz też zrobić pewnie coś takiego:
/^((-?\d+)|(-?\d*.\d+))?$/

tyle że dalej nie będzie zabezpieczenia przed floatami, które nie mieszczą się w zakresie, ani nie będzie działać na floaty w formacie: 1.57e10

0

a może coś takiego?

isStringFloat = function(test) { return parseFloat(test+'')==test; }
0

chce tylko dwie licznby po przecinku

0

2 miejsca po przecinku

zmienna.toFixed(2)
0

Napisalem cos takieg, ale sredno mi sie to podoba. musze przetestowac/

 
function check_prices(value)
{
    //var reg = /^\d*(\.\d+)?$/;
    var reg = /^\d*(\.\d{1,2})?$/;
    if(reg.test(value))
    {
        return true;
    }
    else
    {
        return false;
    }
}
0

Osobiście nie byłbym taki upierdliwy. Ja w swoich projektach pozwalam na zapisanie floata nawet w formie: 1 200 000f,4948 - po zdarzeniu blur wywalam wszystko, co nie jest liczbą lub przecinkiem/kropką, zamieniam przecinek na kropkę, nadmiarowe kropki i wszystko co po prawej usuwam (jedyna "upierdliwość"), wrzucam w parseFloat, zaokrąglam do oczekiwanej dokładności.

Zamiast irytować użytkownika głupimi komunikatami - wykonuję pracę za niego. A user sobie myśli - "jaki świetnie zaprojektowany system!" ;)

0

A co jeśli te liczny tyczą się cen? I co jeśli ktoś wprowadzić źle liczbę i nie spojrzy na nią. Twój pomysł ją zaokręgli. User zapisze zmiany. A za dwa tygodnie przyjdzie skarga od klienta. Niby to ułamki groszy, ale jednak. Nie wiem czy z cenami chciałbym ryzykować.

0
test = function(str) { !!str.match(/^\d*\.?\d{1,2}$/); };
0

Teraz troche lepiej?


function check_prices(value)
{
    var regexp = /^\d*\.?\d{1,2}$/;
    return regexp.test(value);
}
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1