Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1

    Validazione espressione regolare

    Salve , ho un campo comun che ricevo tramite autocomplete , il problema è che non riesco a validare l'espressione regolare correttamente , vorrei che nella stringa siano presenti dei numeri all'interno di parentesi quadre,questa l 'espressione :
    codice:
            
    var espressione = new RegExp("^(?=.*\[\d+])","i");
    però ad esempio :

    dddd [4481]
    test_ok
    (CN) [562]
    test_bad

    Questo il jsfiddle http://jsfiddle.net/5Lg6qvb0/

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Le tue specifiche non sono abbastanza dettagliate per poter dare una risposta. Perché la prima va e la seconda non ?
    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

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Le tue specifiche non sono abbastanza dettagliate per poter dare una risposta. Perché la prima va e la seconda non ?
    C'è il codice nel jfiddle

    Se lo sapevo risolvevo da solo...

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Mi dispiace ma non è una risposta. Se il codice fosse giusto non posteresti.

    Dici che qualcosa non funziona e non dici quello che vuoi ottenere. O piuttosto gli esempi che dai sono validi a confronto delle tue specifiche mentre uno va e l’altro no. Perché ?
    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
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao, ho fatto alcune prove sul tuo fiddle, noto il problema (verificando i risultati nella console) che appunto hai indicato.

    Prova a scrivere l'espressione in questo modo:
    codice:
    var espressione = /^.*\[\d+]/i;
    Mi pare che così vada ma non so dirti il perché.


    @badaze, il problema sta nel fatto che testando la stringa "(CN) [562]" secondo quell'espressione, anziché restituire test_bad (che salta fuori nella console), dovrebbe restituire test_ok come per la prima stringa "dddd [4481]"... magari non era troppo chiara questa indicazione



    EDIT:
    Ho trovato la causa... quando usi una stringa per definire l'oggetto RegExp vanno effettuati opportunamente i doppi escape. Nel tuo caso può essere scritto in questo modo:

    codice:
    new RegExp("^(?=.*\\[\\d+])","i");
    o anche senza Positive Lookahead:

    codice:
    new RegExp("^.*\\[\\d+]","i");
    o più semplicemente, come suggerito sopra:
    codice:
    /^.*\[\d+]/i;
    Ultima modifica di KillerWorm; 25-10-2018 a 09:40
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2026 vBulletin Solutions, Inc. All rights reserved.