Zdravím, jelikož moc neumím chodit v reg. výrazech, potřebuju ošetřit formulářové pole v eshopu, když uživatel zadává počet položek, aby mohl klasicky zadat číslo (1; 2; 3; 4; 5...) nebo i jako desetinou hodnotu (0,5; 1.6) - záměrně tam může zákazník zadat tečku nebo čárku, to si pak ošetřím v PHP. Zkoušel jsem něco vytvořit. Jelikož jsem to neuměl nacpat vše do jednoho výrazu, tak jsem si to rozdělil na tři a pak v podmínce níže pomocí funkce "test" výrazy zkoušel:
mm = new RegExp("^[0-9]{1,10}$");
mm2 = new RegExp("^[0-9]{1,3}\.{1}[1-9]{1}$");
mm3 = new RegExp("^[0-9]{1,3},{1}[1-9]{1}$");
if(!mm.test(document.getElementById("pocet").value) && !mm2.test(document.getElementById("pocet").value) && !mm3.test(document.getElementById("pocet").value) || document.getElementById("pocet").value == 0){
alert("Chyba");
document.getElementById("pocet").value = 1;
}
Jenže pak sem to zkoušel a když jsem zadal hodnoty jako: 0*9 nebo 1:4, tak mě to v klidu prošlo, což by nemělo. Potřeboval bych zkrátka výraz, kterej veme u desetinnýho čísla pouze v podtaz jedno desetinné místo - tedy 1,5; 0,6 apod.
Díky za každou pomoc!
Měl by stačít jednodušší zápis:
var input = "5,6";
var number = /^(\d+|\d+\.\d+|\d+,\d+)$/;
if(!number.test(input))
{
alert('Špatný formát čísla.');
}
Díky moc,
zjistil jsem, že hlavní příčinou, proč to nešlo, byla špatně zapsaná syntaxe té proměnné, resp. stačilo odstranit ' new RegExp(" ' a nahradit lomítkem, stejně i za dolarem jako to máš ty a už to fachalo. U Tvé verze mi ještě nešlo, kdyby někdo zadal např. 0,0 nebo 002, ale to už jsem si ošetřil.
Ještě jednou díky!