dubito fortemente che [1-31] sia l'intervallo da 1 a 31: [1-31] matcha al massimo 1, 2 oppure 3.Originariamente inviato da Braco
Funziona perchè di prima dici che con dei numeri risponde, c'è da sistemare la reg. fai una cosa, per le prove usa questo:
var re5digit = new RegExp("^([1-31]+)$"); e guarda il link che ti ho postato, modifica la reg, modifica solo ciò che è nelle parentesi quadre.
scrivi così:
quell'espressione regolare controlla già intrinsecamente la lunghezza e il fatto che il campo non sia vuotocodice:function checkdata(){ var re5digit=/^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d{2}$/; data = document.forms["item1"].starting_date; if (!re5digit.test(data.value)) { alert("Please enter a valid data"); data.focus(); return false; } }
Occhio all'escape delle slash in avanti e all'apice e al dollaro che delimitano la regexp.