Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Espressioni regolari

  1. #1

    Espressioni regolari

    Ciao a tutti.

    Ho un campo in un form che si chiama ragione_sociale.
    Vorrei utilizzare una funzione javascript che mi controllasse che il campo ragione_sociale possa contenere qualsiasi tra i seguenti caratteri:

    0-9a-zA-Zçàáâäàåèéêëìíïîòóôöùúüûÿñ,.:;'-_&*!()

    oltre a questi sono ammessi anche spazi.

    Ho dato un'occhiata alle espressioni regolari e sono riuscito a fare questo:

    rag contiene il contenuto del campo ragione_sociale

    var espressione = /^[a-zA-Z0-9]/;

    if (!espressione.test(rag))
    {
    alert(\"La ragione sociale non è valida!\");
    }

    se prova a scrivere

    var espressione = /^[a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ,.:;'-_&*!()]/;

    sballa tutto.

  2. #2
    up

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova al contrario, visto che vuoi includere molti caratteri e quelli da escludere saranno meno tipo:
    codice:
    var espressione = /^[@]$/;
    
    if (espressione.test(rag))
    {
    alert(\"La ragione sociale non è valida!\");
    }
    prova anche cosi:
    codice:
    var espressione = /^[@]$/;
    
    if (espressione.match(rag))
    {
    alert(\"La ragione sociale non è valida!\");
    }
    In questo caso se sarà digitato la @ nel campo rag restituirà l'alert.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Originariamente inviato da cavicchiandrea
    Prova al contrario, visto che vuoi includere molti caratteri e quelli da escludere saranno meno tipo:
    Non è proprio così considerando che ci sono molti caratteri speciali e che con il codice ascii puoi digitare circa 255 caratteri. Mi diventa un pò difficile ricordare quali sono tutti i caratteri speciali da non dover includere nel campo.

    Comunque, devo per forza indicare i caratteri validi anche perché mi servono altri controlli che prevedono caratteri simili anche se in numero inferiore.

    Sto comunque avendo degli errori strani:

    var espressione = /^[a-zA-Z0-9]/;

    if (!espressione.test(rag))
    {
    alert("La ragione sociale non è valida!");
    }

    Se nel campo digito

    provà


    non mi dà errore perchè?????

    Fammi capire una cosa,

    var espressione = /^[a-zA-Z0-9]/;


    Questo vuol dire che posso accettare solo caratteri alfanumerici, qualsiasi sia l'ordine con cui digito cifre e/o numeri?

    Ciao

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da gianf_tarantino
    Non è proprio così considerando che ci sono molti caratteri speciali e che con il codice ascii puoi digitare circa 255 caratteri. Mi diventa un pò difficile ricordare quali sono tutti i caratteri speciali da non dover includere nel campo.

    Comunque, devo per forza indicare i caratteri validi anche perché mi servono altri controlli che prevedono caratteri simili anche se in numero inferiore.

    Sto comunque avendo degli errori strani:

    var espressione = /^[a-zA-Z0-9]/;

    if (!espressione.test(rag))
    {
    alert("La ragione sociale non è valida!");
    }

    Se nel campo digito

    provà


    non mi dà errore perchè?????

    Fammi capire una cosa,

    var espressione = /^[a-zA-Z0-9]/;


    Questo vuol dire che posso accettare solo caratteri alfanumerici, qualsiasi sia l'ordine con cui digito cifre e/o numeri?

    Ciao
    Si
    Ma per un approfondimento leggi qui (in italiano info di base)
    o qui (in inglese completo)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Scusa, non avevo detto che mi sono già spulciato decine e decine di siti internet che parlano delle espressioni regolari in javascript, come la pagina che mi hai consigliato di vedere.

    Forse non ho ben capito io come utilizzare le espressioni regolari.

    Comunque ho risolto in questo modo:

    var espressione = /[ a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ.,:;\-_&'\*!/(/)]/;

    Dopodiché anziché controllare l'intera stringa, ho controllato un carattere per volta, ossia:

    for (var index = 0; index < rag_len; index++)
    {
    if (!espressione.test(rag.charAt(index)))
    {
    alert("Ragione sociale non valida ");
    return;
    }
    }

    dove rag_len contiene la lunghezza del campo ragione_sociale.

    Lo so che è poco elegante e sicuramente poco efficiente ma sicuramente funziona!!!
    Grazie comunque.

  7. #7
    var espressione = /[ a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ.,:;\-_&'\*!/(/)]/g;

    con la g alla fine. La g fa la stessa cosa che hai fatto tu.

  8. #8
    Originariamente inviato da Mega69
    var espressione = /[ a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ.,:;\-_&'\*!/(/)]/g;

    con la g alla fine. La g fa la stessa cosa che hai fatto tu.

    In ke senso fa lo stesso che faccio io? Per quello che ho potuto leggere in giro, /g viene usato in caso di sostituzioni, quando c'è un pattern da cercare ed una sostituzione da effetturare. Mettendo /g si fa in modo che le parole che corrispondono al pattern siano tutte cambiate, non solo la prima.
    O c'è qualcosa che mi sfugge?

  9. #9
    Giusto

    Invece devi fare così:

    /^[a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ.,:;\-_&'\*!\(\)]+$/g;



    Nota che si scrive \( e non /( per fare l'escape.

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    comunque puoi evitare anche la /g se valuti la stringa dall' inizio alla fine, quindi racchiudi tra /^ e $/ e non solo tra / /, e specifici che la stringa nella sua interezza puo' essere costituita da uno o piu' caratteri tra quelli specificati [blablabla]+

    /^[ a-zA-Z0-9çàáâäàåèéêëìíïîòóôöùúüûÿñ.,:;\-_&'\*!/(/)]+$/;

    p.s. occhio al carattere `

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.