Javascript - regulární výrazy
3 příspěvky
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
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!