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

    espressione regolare: estrarre un numero da una stringa

    Data una stringa del tipo:

    " xxxxxx 3,14 yyyy " oppure
    " xxxxxx 3.14 yyyy "

    volevo estrarre il numero: 3.14 o 3,14

    Ho fatto questa espressione regolare, per quanto me ne possa ricordare

    .*?(\d+(\.|,)?\d+).*

    anche se sembra che funzioni, non mi fido:
    Mi date un aiuto per vedere se è corretta?
    Pietro

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, con le parentesi tonde stai specificando dei gruppi. Io non userei dei gruppi a meno che non ti serva avere, per qualche motivo, un array di tali gruppi.
    Inoltre, (sempre che siano situazioni probabili) nel caso di stringhe tipo: " xxxxxx 3 yyyy ", " xxxxxx 3, yyyy ", " xxxxxx ,14 yyyy "; otterrai dei risultati imprevisti.

    Non sono un esperto di regex ma per andare sul sicuro farei piuttosto qualcosa del genere:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
      </head>
      <body>
        <script type="text/javascript">
          var r = /\d*[,.]?\d+/;
          document.write(                                       // OUTPUT
                    ("estrai numero 3.14 da stringa").match(r)  // 3.14
            ,"<br>",("estrai numero 3,14 da stringa").match(r)  // 3,14
            ,"<br>",("estrai numero 3. da stringa").match(r)    // 3
            ,"<br>",("estrai numero .14 da stringa").match(r)   // .14
            ,"<br>",("estrai numero 314 da stringa").match(r)   // 314
            ,"<br>",("estrai numero 3 14 da stringa").match(r)  // 3
            ,"<br>",("estrai 3 numero 14 da stringa").match(r)  // 3
            ,"<br>",("estrai numero da stringa 3.14").match(r)  // 3.14
            ,"<br>",("3,14 estrai numero da stringa").match(r)  // 3,14
          );
       </script>   
      </body>
    </html>
    Nota, se la stringa contiene più numeri, inseriti qua e là, in questo esempio sarà restituita solo la prima occorrenza trovata. Invece, per recuperare tutte le occorrenze, puoi utilizzare il flag "g" (global). In tal caso la funzione match restituirà un array con tutte le occorrenze trovate.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio. Proverò la tua soluzione.

    Pietro

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.