Home / Programmazione / Objective-C / Usare le espressioni regolari in Objective-C
Mattepuffo

Usare le espressioni regolari in Objective-C

Usare le espressioni regolari in Objective-C

In questi giorni mi sono dato alla validazione di un form per una app su iPad.

I controlli erano più o meno i soliti: password, email, codice fiscale, ecc....

Per eseguire questi controlli mi sono creato una classe con dei metodi static da richiamare nel form.

Vi posto uno di questi metodi per vedere come usare le espressioni regolari in Objective-C.

Utilizzando NSPredicate il tutto si riduce in pochissime righe di codice:

#import "ValidazioneForm.h"

@implementation ValidazioneForm

+ (BOOL)validatePassword:(NSString *)password {
    NSString *regexAlphanumericPassword = @"^(?=.*\\d)(?=.*[A-Za-z])([a-zA-Z0-9_.,\\-+*!#@?]{6,20})";
    NSPredicate *passwordValidation = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexAlphanumericPassword];
    return [passwordValidation evaluateWithObject:password];
}

@end

Vi ho messo il metodo per la validazione della password, ma in realtà vale tutte le validazioni con espressioni regolari, basterebbe cambiare regex.

Prima abbiamo un oggetto NSString che rappresenta l'espressione regolare da controllare.

Sotto abbiamo l'oggetto NSPredicate e il metodo predicateWithFormat al quale passiamo due argomenti: il tipo di comparazione e cosa dobbiamo comparare.

Con MATCHES indichiamo che l'espressione a sinistra deve essere uguale a quella che sta a destra.

Con SELF identifichiamo l'oggetto da valutare.

Il metodo evaluateWithObject ritorna un valore booleano, ed esattamente ritorna TRUE se la comparazione è avvenuta con successo, FALSE in caso contrario.

Per maggiori info controllare i link alla documentazione che vi ho postato.

Ciao""