Validatori Stringa
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' }
Validatori Sicurezza
Validatori per credenziali utente - username, password con requisiti minimi, password forte e policy configurabili.
Composables
Composables di @pzeta/vue-form per validazione reattiva, fetch dati remoti e gestione opzioni — useValidation, useFieldValidation, useRemoteFetch, useRemoteSetup, useOptionLabel.