Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    REGEX match tutto quello che non è float, non posso usare is_float

    Ciao a tutti,

    avrei bisogno di una regex per fare il match di tutto quello che non è un campo float
    es:
    123,123 non trovato
    123.123 non trovato
    123 non trovato
    123$ trovato
    abcd trovato

    Perché una regex e non is_float? Perché la regex la userei sia in php che in javascript

    Questo mi serve per trovare tutto quello che non è un decimale e, in questo caso, dare un errore.

    Grazie,
    Roberto

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Non scomoderei le espressioni regolari per questa cosa, in Javascript puoi usare quello che suggeriscono qui: https://stackoverflow.com/a/3886106
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Sky Visualizza il messaggio
    Non scomoderei le espressioni regolari per questa cosa, in Javascript puoi usare quello che suggeriscono qui: https://stackoverflow.com/a/3886106
    Ho una funzione che mi controlla automaticamente il pattern in javascript e un metodo che mi controlla il pattern in PHP automaticamente, per questo dovrei utilizzare una regex che mi varrebbe per entrambi i sistemi (javascript e php).

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    E b123.123 trovato o no ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    b123.123 trovato

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    11
    prova questo;
    [0-9]*(.[0-9]*)?
    Ovviamente devi negare e cioè if !(Match(regex)) then trovato else non trovato ....Saluti*
    Ultima modifica di and_esp; 20-06-2018 a 10:55

  7. #7
    Quote Originariamente inviata da and_esp Visualizza il messaggio
    prova questo;
    [0-9]*(.[0-9]*)?
    Ovviamente devi negare e cioè if !(Match(regex)) then trovato else non trovato ....Saluti*
    con questa mi dà errore sulla stringa 'abcd', in pratica me la trova come falso positivo per 4 volte (una per carattere). Inoltre non funziona se il separatore è la virgola (dagli esempi che ha postato credo che per lui il float sia da considerare tale a prescindere dal separatore)

    utilizzerei questa espressione:
    codice:
    ^\d{1,}[.,]{0,1}\d{0,}$
    che funziona anche per un caso estremo come questo
    1,2,45

    Anche questa va negata (if(!preg_match... ecc ecc)

    Il risultato che ho ottenuto è stato questo:
    123,123 //float
    123.123 //float
    123 //float
    123$ //non float
    abcd //non float
    1,2,45 //non float
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    11
    Mi spieghi meglio in quali condizioni ti trovi?sono variabili e un file di testo?

  9. #9
    aspe credo di aver capito, la tua regexp funziona ma l'hai postata senza i delimitatori di inizio e fine stringa.
    se li aggiungo, funziona anche a me:

    codice:
    ^[0-9]*(.[0-9]*)?$
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    11
    Pensandoci meglio puoi fare così:

    codice:
    ^[0-9]*((.|,)[0-9]*)?$
    Questa regex ti permette di rilevare tutti le stringe formate da un inizio rigo seguito da un numero indefinito di cifre eventualmente seguito da un punto oppure da una virgola seguito da un numero indefinito di cifre decimali seguito da una fine rigo.Saluti.
    Ultima modifica di and_esp; 21-06-2018 a 11:04

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.