Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    dubbi su validazione double con espressioni regolari

    Per validare un valore double, ho trovato questa espressione regolare
    codice:
    exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + val.decimalchar + "(\\d+))?\\s*$");
    esplicitando ottengo:
    codice:
    ^\s*([-\+])?(\d+)?(\.(\d+))?\s*$
    Ecco, non sono per niente esperto in espressione regolari, però mi sembra non corretta. Io la sostituirei con questa:
    codice:
    ^\s*([-\+]?(\d+))?(\.(\d+))?\s*$
    ossia, il segno è prefisso opzionale ad un numero corretto, ma non vuol dire niente senza avere un numero valido.

    Grazie
    Pietro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prova a scrivere -.2 (meno punto due): in algebra e` un valore valido, e viene riconosciuto regolarmente da qualsiasi linguaggio.

    Invece credo che validi anche la stringa vuota, che forse non e` il caso. A mio parere qualche ? potrebbe diventare +

    Inoltre ci vedo troppe parentesi tonde, ma forse servono per i vari $1, $2, ... nel secondo termine del replace.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Mich_
    Prova a scrivere -.2 (meno punto due): in algebra e` un valore valido, e viene riconosciuto regolarmente da qualsiasi linguaggio.

    Invece credo che validi anche la stringa vuota, che forse non e` il caso. A mio parere qualche ? potrebbe diventare +

    Inoltre ci vedo troppe parentesi tonde, ma forse servono per i vari $1, $2, ... nel secondo termine del replace.
    effettivamente hai ragione, valida una stringa vuota, e non valida -.2

    Ma l'espressione originale, della Microsoft, valida correttamente pure + o -, che a me non risultano essere numeri validi.

    Giusto per imparare qualcosa, come la faresti?
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per poter sviluppare correttamente la RegExp, occorre sapere l'uso che verra` eventualmente fatto dei singoli pezzi.

    Comunque suppongo che non vengano usati i pezzi e che la RegExp serva solo per accettare o rifiutare una stringa, e che non ci siano spazi prima e dopo.

    Comunque per una validazione completa, come mi par di capire vuoi, servono due passaggi, oppure una RegExp piu` complessa:

    Prova questa:
    ^[-\+]?(\d(\.\d+)?)|(\.\d+)$

    Nota l'operatore OR che sceglie tra i due casi se esiste o no una parte intera
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.