Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    parola richiesta ma non inclusa nel match js regexp

    ciao.
    ho questa stringa:
    codice:
    [null, 'pippo','http://www.google.it/','_self','']
    vorrei che estraesse solo http://www.google.it solo se la stringa parte con [null ma non voglio includere null nel match.
    in pratica:
    codice:
    [null1, 'pippo','http://www.google.it/','_self','']//non estrae nulla
    [null, 'pippo','http://www.google.it/','_self','']//estrae http://www.google.it
    [anull, 'pippo','http://www.google.it/','_self','']//non estrae nulla
    [null, 'pippo','http://www.yahoo.it/','_self','']//estrae http://www.yahoo.it
    grazie

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, si potrebbe fare in vari modi, questo è uno:
    codice:
    function estraiUrl(str){
      return (str.match(/\[ *null *,.*, *'(.*)\/'.*/) || [,""])[1]
    }
    console.log(                                                                  // OUTPUT:
            estraiUrl("[null1, 'pippo','http://www.google.it/','_self','']")      // (stringa vuota)
    ,"\n",  estraiUrl("[null, 'pippo','http://www.google.it/','_self','']")       // http://www.google.it
    ,"\n",  estraiUrl("[anull, 'pippo','http://www.google.it/','_self','']")      // (stringa vuota)
    ,"\n",  estraiUrl("[null, 'pippo','http://www.yahoo.it/','_self','']")        // http://www.yahoo.it
    )
    Se servono chiarimenti chiedi pure.

    Tieni presente che in casi del genere è sempre opportuno valutare quante più eventualità possibili in modo da poter formulare al meglio il parsing da eseguire sulla stringa.

    Posso giusto dire che la soluzione che ho fornito soddisfa le specifiche che hai indicato, anzi fa anche qualcosa in più perché include casi in cui ci siano degli spazi attorno ai valori del pseudo-array (come mi sembra plausibile), ma è possibile che tra le svariate eventualità (cioè a seconda di come è stata scritta la stringa) saltino fuori dei risultati inattesi. Chiaramente il tutto è da valutare secondo casistiche plausibili e verosimili.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, si potrebbe fare in vari modi, questo è uno:
    codice:
    function estraiUrl(str){
      return (str.match(/\[ *null *,.*, *'(.*)\/'.*/) || [,""])[1]
    }
    console.log(                                                                  // OUTPUT:
            estraiUrl("[null1, 'pippo','http://www.google.it/','_self','']")      // (stringa vuota)
    ,"\n",  estraiUrl("[null, 'pippo','http://www.google.it/','_self','']")       // http://www.google.it
    ,"\n",  estraiUrl("[anull, 'pippo','http://www.google.it/','_self','']")      // (stringa vuota)
    ,"\n",  estraiUrl("[null, 'pippo','http://www.yahoo.it/','_self','']")        // http://www.yahoo.it
    )
    Se servono chiarimenti chiedi pure.

    Tieni presente che in casi del genere è sempre opportuno valutare quante più eventualità possibili in modo da poter formulare al meglio il parsing da eseguire sulla stringa.

    Posso giusto dire che la soluzione che ho fornito soddisfa le specifiche che hai indicato, anzi fa anche qualcosa in più perché include casi in cui ci siano degli spazi attorno ai valori del pseudo-array (come mi sembra plausibile), ma è possibile che tra le svariate eventualità (cioè a seconda di come è stata scritta la stringa) saltino fuori dei risultati inattesi. Chiaramente il tutto è da valutare secondo casistiche plausibili e verosimili.
    Ciao grazie infinite ma mi puoi spiegare brevemente quello che hai fatto o le spiegazioni esulano da questo post? Ho letto chiedi pure e infatti chiedo.
    Ma una trattazione delle regex per capirle sicuramente non puo essere fatta qui. Su google ci sono tanti tester delle regex ma la trattazione organica non c è come mi consigli di approcciarmi allo studio? Anche in inglese non c è problema. Grazie. Ciao

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.