Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Espressioni regolari...

    Ragazzi sto impazzendo per modificare uno script scaricato da internet...

    Ho questo codice che originariamente dovrebbe convalidare una stringa del tipo: 12/12/2005 18:40:12

    Vorrei modificare lo script per convalidare invece una stringa del tipo: 12/12/2005 ma non riesco a mettere mano sulle RegExp senza avere un errore come risultato.

    Ecco il codice:

    codice:
    function str2dt (str_datetime) {
    var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/; // /^(\d+)\\(\d+)\\(\d+)$/;
    if (!re_date.exec(str_datetime))
    return alert("Formato data non valido: "+ str_datetime);
    return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
    Despite of my rage i'm still just a rat in a cage

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Errore 1.
    Riposta la RegExp impedendo la conversione delle faccine (e` una opzione sotto la textarea di inserimento.

    Errore 2.
    Quella RegExp non permette la stringa da te proposta. Non riesco a capirla tutta per via delle faccine, ma la slash non e` contemplata: la RegExp lascia passare il -

    Altra domanda:
    Chi ha sviluppato quella RegExp? Non mi pare molto furba.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Il file l'ho scaricato da qui (html.it)

    Ecco il codice:

    codice:
    function str2dt (str_datetime) {
    var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\\d+)\\d+)$/; 
    if (!re_date.exec(str_datetime))
    return alert("Formato data non valido: "+ str_datetime);
    return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
    Despite of my rage i'm still just a rat in a cage

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quello script non fa (solo) la validazione della data, ma principalmente la converte in formato Date (dopo averla validata). Tra l'altro utlizza la funzione exec(), che non e` il massimo di portabilita`.

    Quindi se ti basta la validazione:
    codice:
    var re_date = /^\d{1,2}[\-\.\/]\d{1,2}[\-\.\/]\d{2,4}$/; 
    if(re_date.test(str_datetime)) {
      return true;
    } else {
      alert("data non conforme");
      return false;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.