Validators

Validatori Stringa

Validatori per formati stringa comuni - solo lettere, alfanumerici, slug URL, esadecimali, base64 e JSON.

Panoramica

I validatori stringa verificano il formato di stringhe per casi d'uso specifici: nomi propri che ammettono solo lettere, identificatori URL-friendly, codici hash esadecimali, contenuto codificato in Base64 e dati JSON strutturati.

Tutti i validatori di questa categoria trattano i valori vuoti come validi. Combinare con required per rendere il campo obbligatorio.

Validatori

alpha

Sintassi: alpha
Descrizione: Verifica che la stringa contenga solo lettere dell'alfabeto latino (a-z, A-Z). Non sono ammessi numeri, spazi o caratteri speciali.

Esempi:

// Valido
ValidationService.validate('Hello', 'alpha')
ValidationService.validate('HelloWorld', 'alpha')

// Non valido
ValidationService.validate('Hello123', 'alpha')    // contiene numeri
ValidationService.validate('Hello World', 'alpha') // contiene spazio
ValidationService.validate('Ciao!', 'alpha')       // contiene carattere speciale

// In schema DynamicFormLayouts
{ name: 'cognome', type: 'text', validation: 'required|alpha' }

alphanumeric

Sintassi: alphanumeric
Descrizione: Verifica che la stringa contenga solo lettere e numeri (a-z, A-Z, 0-9). Non sono ammessi spazi, trattini o caratteri speciali.

Esempi:

// Valido
ValidationService.validate('Hello123', 'alphanumeric')
ValidationService.validate('User42', 'alphanumeric')
ValidationService.validate('ABC', 'alphanumeric')

// Non valido
ValidationService.validate('Hello World', 'alphanumeric') // spazio
ValidationService.validate('user@123', 'alphanumeric')    // carattere @
ValidationService.validate('test-123', 'alphanumeric')    // trattino

// In schema DynamicFormLayouts
{ name: 'codiceaccesso', type: 'text', validation: 'required|alphanumeric|min:6|max:20' }

slug

Sintassi: slug
Descrizione: Verifica il formato slug URL-friendly. Ammette solo lettere minuscole, numeri e trattini come separatori. Non può iniziare o finire con trattino e non può avere trattini consecutivi.

Formato valido: [a-z0-9]+(?:-[a-z0-9]+)*

Esempi:

// Valido
ValidationService.validate('my-article', 'slug')
ValidationService.validate('post-123', 'slug')
ValidationService.validate('hello-world-2024', 'slug')

// Non valido
ValidationService.validate('My-Article', 'slug')   // maiuscole
ValidationService.validate('my--article', 'slug')  // doppio trattino
ValidationService.validate('-my-article', 'slug')  // inizia con -
ValidationService.validate('my article', 'slug')   // spazio

// In schema DynamicFormLayouts
{ name: 'permalink', type: 'text', validation: 'required|slug|max:100' }

hex

Sintassi: hex oppure hex:N
Descrizione: Verifica che la stringa sia una sequenza esadecimale valida (caratteri 0-9, a-f, A-F). Con il parametro, verifica anche che la lunghezza sia esattamente N caratteri.
Parametro: (opzionale) lunghezza esatta in caratteri

Esempi:

// Senza lunghezza
ValidationService.validate('a1b2c3', 'hex')    // valido
ValidationService.validate('DEADBEEF', 'hex')  // valido (case insensitive)
ValidationService.validate('xyz', 'hex')       // non valido: non esadecimale

// Con lunghezza fissa
ValidationService.validate('ff00ff', 'hex:6')     // valido (6 caratteri)
ValidationService.validate('a1b2c3', 'hex:8')     // non valido: lunghezza sbagliata
ValidationService.validate('ff 00', 'hex')        // non valido: spazio

// In schema DynamicFormLayouts - hash MD5 (32 caratteri hex)
{ name: 'hashmd5', type: 'text', validation: 'required|hex:32' }

base64

Sintassi: base64
Descrizione: Verifica che la stringa sia una codifica Base64 valida. Accetta caratteri A-Z, a-z, 0-9, +, / con padding standard tramite = o ==.

Esempi:

// Valido
ValidationService.validate('SGVsbG8gV29ybGQ=', 'base64')  // "Hello World"
ValidationService.validate('dGVzdA==', 'base64')           // "test"
ValidationService.validate('YWJj', 'base64')               // "abc" (senza padding)

// Non valido
ValidationService.validate('Hello World', 'base64')  // spazi non permessi
ValidationService.validate('SGVsbG8!', 'base64')     // carattere ! non valido

// In schema DynamicFormLayouts
{ name: 'payloadbase64', type: 'textarea', validation: 'required|base64' }

json

Sintassi: json
Descrizione: Verifica che la stringa sia un JSON valido e parsabile. Accetta solo oggetti {} o array []; i valori primitivi (stringhe, numeri, null, boolean) non sono accettati.

Esempi:

// Valido
ValidationService.validate('{"name": "John"}', 'json')    // oggetto
ValidationService.validate('[1, 2, 3]', 'json')           // array
ValidationService.validate('{"items": [1, 2]}', 'json')   // nested

// Non valido
ValidationService.validate('"hello"', 'json')    // stringa primitiva
ValidationService.validate('123', 'json')        // numero primitivo
ValidationService.validate('{invalid}', 'json')  // sintassi errata
ValidationService.validate('null', 'json')       // null primitivo

// In schema DynamicFormLayouts
{ name: 'configurazione', type: 'textarea', validation: 'required|json' }