Newsgroup: it.comp.lang.javascript
Titolo: validazione data ecc.

Ciao,
ho scritto questo:
function ff_validedatecertificato(element, message)
{
    var check =
    /^([0-2][0-9]|[3][0-1])\/([0][0-9]|[1][0-2])\/[0-9]{4}$/;
    if (!check.test(element.value)){
        message = 
element.name
+" inserisci la data in formato 
gg/mm/aaaa.\n";
        ff_validationFocus(
element.name
);
        return message;
    } // if
    return '';
} // ff_validedate
ma vorrei anche mettere qualcosa per proibire l'inserimento di una data 
anteriore a xxxx e superiore a yyyyy.
E' possibile? e... come posso fare?
Grazie :-)
--
Claretta 

 E' possibile? e... come posso fare?
io ti consiglio di costruirti un oggetto javascript di tipo Date che
contenga
la data inserita dall'utente, poi è semplicissimo far due conti per
vedere
se tale data è anteriore a xxxx e/o superiore a yyyy.
Per approfondire:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date
http://www.devguru.com/technologies/javascript/10585.asp
http://www.w3schools.com/jsref/jsref_obj_date.asp
ah, una domanda: che senso ha passare alla funzione il parametro
message quando poi
al suo interno lo ri-assegni, "fregandotene", di fatto, del valore che
aveva? (se lo aveva)
rae

 ha scritto nel messaggio 
news:dcca15ca-bbe1-43e7...@o4g2000pra.googlegroups.com...



grazie, vedrò di fare come dici.
per lo script: era questo, avevo dimenticato una parte nel copia e incolla:
function ff_validedate(element, message)
{
    var check =
    /^([0-2][0-9]|[3][0-1])\/([0][0-9]|[1][0-2])\/[0-9]{4}$/;
    if (!check.test(element.value)){
        if (message=='') message = 
element.name
+" inserisci la data in 


 Grazie :-)
Prego. :)
-- 
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."

 - see 00index.htm
 Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.

 E' possibile? e... come posso fare?
Si, ma non è semplice, bisogna considerare i gg dei mesi (compresi gli
anni bisestili) per le date anteriori a xxxx e superiori a yyyyy; serve
una regexp molto complessa, però si può fare.
Ho scritto questa che matcha dal 01/01/1990 al 31/12/2010, ed ho testato
alcune date, comprese quelle "particolari", sempre con esito positivo:
/^((29\/02\/([?<=1](992|996)|[?<=2](000|004|008)))|((20\/0[1-9]|20\/1[0-2]|[0-2][1-8]\/0[1-9]|[0-2][1-8]\/1[0-2]|29\/1|29\/[3-9]|29\/1[0-2]|3[0-1]\/01|30\/0[3-9]|31\/(0[3578]|10|12))\/([?<=1]99[0-9]|[?<=2](00[0-9]|010))))$/
È solo un esempio, tu non hai specificato xxxx e yyyy, quindi vedi se
riesci ad adattarla al tuo caso.
Le parti da modificare sono [?<=1](992|996)|[?<=2](000|004|008) per gli
anni bisestili e [?<=1]99[0-9]|[?<=2](00[0-9]|010) per tutto il resto.
-- 
    * b *
  *   y   *
*   Piero   *
[ /summum ius summa iniuria/ ] 


Prima di tutto grazie a tutti quelli che hanno risposto :-)
Dovrei permettere l'inserimento di una data in formato gg/mm/aaaa (tipo 
12/12/2008) compresa tra due date limite, come potrebbero essere il 
01/10/2007 e il 12/12/2010.
--
Claretta

 il 01/10/2007 e il 12/12/2010.
Sempre di più!
Era xxxx --> yyyy, ora chiedi aa/bb/xxxx --> cc/dd/yyyy, non è semplice,
però ci provo. :-)
Divertiti:
<html>
<head>
<script type="text/javascript">
function controlla()
   {
   var 
re=/^(((1[2-9]|2[0-9]|3[0-1])\/12\/2008)|((20\/(0[1-9]|1[0-2])|[0-2][1-8]\/(0[1-9]|1[0-2])|29\/(01|0[3-9]|1[0-2])|3[0-1]\/01|30\/(0[3-9]|11)|31\/(0[3578]|10|12))\/2009)|((20\/0[1-9]|01\/10|[0-2][1-8]\/0[1-9]|29\/(01|0[3-9])|30\/(01|0[3-9])|31\/(01|0[3578]))\/2010))$/;
   valida=document.modulo.data.value;
   alert(re.test(valida));
   }
</script>
</head>
<body>
<div>controlla la validità delle date dal 12/12/2008 al 01/10/2010
compresi</div>
<form name="modulo">
<input type="text" name="data" value="" /><br />
<input type="button" value="-test-" onclick="controlla()" />
</form>
</body></html>
-- 
    * b *
  *   y   *
*   Piero   *
[ /ad audiendum verbum/ ] 

 -9]|010))))$/
Manca lo "0" in data "29" (2 volte), ed 11 in data "30". :-/
La regexp completa diventa:
/^((29\/02\/([?<=1](992|996)|[?<=2](000|004|008)))|((20\/0[1-9]|20\/1[0-2]|[0-2][1-8]\/0[1-9]|[0-2][1-8]\/1[0-2]|29\/01|29\/0[3-9]|29\/1[0-2]|3[0-1]\/01|30\/(0[3-9]|11)|31\/(0[3578]|10|12))\/([?<=1]99[0-9]|[?<=2](00[0-9]|010))))$/
    ...skipped!
-- 
    * b *
  *   y   *
*   Piero   *
[ /carpe diem/ ] 

 TP/BP/Delphi/jscr/&c, FAQ items, links.