Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    regex controllo cognome con apici

    Ciao a tutti,

    ho provato a cercare altri post riguardanti il problema ma mi han lasciato alquanto dubbioso.. Dovrei controllare con una regex tutti i cognomi che mi passano per $_POST, per ora uso questa regex:

    /^[a-zA-Z]+$/

    vorrei poter includere all'elenco dei caratteri "accettati" l'apice singolo ' , in modo da confermare cognomi come dall'orto d'amico ecc... qualcuno ha qualche idea? Perchè ho provato a fare l'escape del carattere /^[a-zA-Z\\']+$/ ma non funziona...

    grazie a tutti in anticipo
    Perpetual Ribellion With Absolutely No Cause

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Ciao,

    a me funziona...forse il problema tuo è che non hai messo il carattere per lo spazio?

    Quindi con l'espressione tua, il cognome d'amico è ok, mentre il cognome d' amico no perchè c'è lo spazio!

    Quindi basta aggiungere \s dopo \' !! E non dovresti avere problemi
    Jekkil

  3. #3
    Ciao Jekkil, premetto che ho provato la regex su una classe alla quale sto lavorando e non vorrei ci fosse qualche problema di sorta, testando la regex a parte ora mi funziona, la prima cosa che ho fatto è stato aggiungere \' e vedevo che non funzionava.. Rifarò altre prove, grazie per il supporto!
    Perpetual Ribellion With Absolutely No Cause

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    guarda, io l'ho provata così e funziona:
    Codice PHP:
    <?php

    $exp 
    '/^[a-zA-Z\'\s]+$/';
    $stringa "d' amico";
    echo 
    $stringa;

    preg_match($exp$stringa$tmp);

    echo 
    "
    "
    ;

    var_dump($tmp);



    ?>
    Jekkil

  5. #5
    guarda non so che dire... ieri ho provato la regex su un win xp 32 bit con php 5.33 e non ho avuto nessun problema, la regex :

    $regex = "/^[a-zA-Z']+$/"

    funziona, accetta gli apici singoli..

    Oggi la sto provando su un linux ubuntu con php 5.2* e qua non l'accetta, non c'è verso di fargliela accettare, sia scrivendola '/^[a-zA-Z\']+$/' che in altri modi, accetta lettere accentate, tuche, di tutto di più, ma gli apici zero assoluto... che dipenda dalla versione di php installata?
    Perpetual Ribellion With Absolutely No Cause

  6. #6
    Prova questa:
    $pattern = "/([^a-zàèìòù '])+/i";

  7. #7
    $pattern = "/([^a-zàèìòù '])+/i";

    con questa mi da valida qualsiasi cosa (inclusi i numeri) tranne le lettere accentate aèìòù comprese....

    preciso il metodo che uso per la verifica :
    Codice PHP:
    <?php

    $prova 
    "/([^a-zàèìòù '])+/i";
    $name $_POST['name'];

    if(
    preg_match($prova$name)) {

        echo 
    "valido";

    } else {

        echo 
    "non valido";

    }
    ?>
    non riesco proprio a capire

    se immetto una stringa tipo : agdv344'''ddd mi d valido
    se immetto: àòè mi da non valido..
    Perpetual Ribellion With Absolutely No Cause

  8. #8
    codice:
    <?php 
    
    $prova = "/([^a-zàèìòù '])+/i"; 
    $name = $_POST['name']; 
    
    if(!preg_match($prova, $name)) { 
    
        echo "valido"; 
    
    } else { 
    
        echo "non valido"; 
    
    } 
    ?>
    Aggiungi il punto esclamativo prima di preg_match.

  9. #9
    no, se lui trova in una stringa i caratteri nella regex è corretto, se ce ne sono di estranei no.

    a me interessa che lui mi dia "valido" quando trova una corrispondenza, e "non valido" quando non la trova, se mettessi il ! davanti invertirei solo la risposta, non serve a nulla.
    Perpetual Ribellion With Absolutely No Cause

  10. #10
    il simbolo ^ è una negazione. L'espressione regolare che ti ho dato vuol dire qualsiasi carattere che non sia una lettera(a-z e corrispettive maiuscole),à,è,ì,ò,ù,uno spazio e l'apice.

    quindi se fai preg_match ti da valido se trova un carattere che non sia uno di quelli elencati, ecco perchè ti da valido se fai agdv344'''ddd.

    con !preg_match ti da falso se trova un carattere che non sia uno di quelli elencati e di conseguenza vero per quelli elencati

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.