Pytanie: Maksymalnie 5 znaków (0,000

Moje kody:

function checkWeightOfParcel(weightOfParcel) {
    var regex=/^[0-5]+\.[0-9]$/;
    if(regex.test(weightOfParcel)) {
        alert('correct!!!')
        return true;
    }
    else {
        alert('wrong regex!')
        return false;
    }
}

* Mój kod może poprawić zakres 0.000 do 5,999, to jest złe. Jak usunąć 0,999 w tyle, aby ustawić wartość MAX is 5.000 dowolnej strony internetowej lub forum, aby nauczyć się REGEX JavaScript? Jestem nowości, dzięki za pomoc.

1
user3066033 4 grudzień 2013, 17:52

5 odpowiedzi

Najlepsza odpowiedź

Nie ma powodu, aby użyć regexa na to. Parse go do numeru za pomocą parseFloat , a następnie użyj prostych warunków:

function checkWeightOfParcel(weightOfParcel) {
    //Turn it into a number
    weightOfParcel = parseFloat(weightOfParcel);

    if (weightOfParcel > 0 && weightOfParcel <= 5) {
        alert('correct!!!')
        return true;
    }
    else {
        alert('wrong regex!')
        return false;
    }
}
3
h2ooooooo 4 grudzień 2013, 14:10

Kolejny zły pomysł: D

/^((?!0(\.0{1,3})?$)[0-4](\.\d{1,3})?|5(\.0{1,3})?)$/

http://regex101.com/r/kv5qk0.

1
leaf 4 grudzień 2013, 15:32

Dlaczego używasz REGEX? łatwiej jest porównać liczby.

function checkWeightOfParcel(weightOfParcel) {
    // var weightOfParcel = parseFloat(weightOfParcel);  // to avoid double parsing
    return parseFloat(weightOfParcel) < 0 || parseFloat(weightOfParcel) > 5
}
0
i100 4 grudzień 2013, 13:58

Nie powinieneś używać REGEX, aby to zrobić. Simple Code Sprawdź, czy jest to wystarczające:

if(weightOfParcel > 0 && weightOfParcel <= 5) {
    alert('correct!!!')
    return true;
}
else {
    alert('wrong value!')
    return false;
}
2
anubhava 4 grudzień 2013, 13:57

Chociaż nie powinieneś używać REGEXP w tym celu, oto to, co działa:

/^(?:(?:[1-4](?:\.\d{1,3})?)|(?:5(?:\.0{1,3})?)|(?:0\.(?:(?:(?:[1-9]\d{0,2}))|(?:0[1-9]\d?)|(?:00[1-9]))))$/

Witryna, która jest świetna do wypróbowania i zrozumienia REGEX, jest ten (już wypełniony Regex): http://regex101.com/r/cm6xc9

Zasadniczo podzielę twoje przypadki w dwóch:

  • Liczby zaczynające się od 1,2,3,4, które mogą być przestrzegane przez A. następnie 1,2 lub 3 dziesiętne.
  • Liczby zaczynające się od 5, które mogą być przestrzegane przez. następnie 1,2 lub 3 zer.
  • Liczby zaczynające się od 0, które muszą być przestrzegane przez. śledzony przez
    • nie zero cyfry, a następnie 0-2 kolejne cyfry
    • 0, a następnie cyfra nie zerowa, a następnie 0-1 kolejnych cyfr
    • 00, a następnie nie zero cyfry
2
Tibos 4 grudzień 2013, 14:59