Validators

Validatori Numerici

Validatori per la verifica di valori numerici - numeri generici, interi, positivi e negativi.

Panoramica

I validatori numerici verificano le proprietà matematiche di un valore: se è convertibile in numero, se è intero, se è maggiore o minore di zero. Accettano sia valori numerici nativi che stringhe numeriche ("42", "3.14").

Tutti i validatori trattano i valori vuoti come validi. Combinare con required per rendere il campo obbligatorio. Per vincoli di range (min/max) usare i validatori min, max, between della categoria Core.

Validatori

numeric

Sintassi: numeric
Descrizione: Verifica che il valore sia convertibile in numero. Accetta sia stringhe che numeri JavaScript. Valori come "abc" o "12.34abc" non sono validi.

Esempi:

// Valido
ValidationService.validate('123', 'numeric')
ValidationService.validate('123.45', 'numeric')
ValidationService.validate(-10, 'numeric')
ValidationService.validate(0, 'numeric')

// Non valido
ValidationService.validate('abc', 'numeric')
ValidationService.validate('12.34abc', 'numeric')
ValidationService.validate('1,234', 'numeric')  // virgola come separatore

// In schema DynamicFormLayouts
{ name: 'importo', type: 'text', validation: 'required|numeric' }

integer

Sintassi: integer
Descrizione: Verifica che il valore sia un numero intero (senza parte decimale). Accetta stringhe numeriche intere come "42". Valori decimali come 42.5 o "3.14" non sono validi.

Esempi:

// Valido
ValidationService.validate(42, 'integer')
ValidationService.validate('42', 'integer')
ValidationService.validate(-10, 'integer')
ValidationService.validate(0, 'integer')

// Non valido
ValidationService.validate(42.5, 'integer')
ValidationService.validate('3.14', 'integer')

// In schema DynamicFormLayouts
{ name: 'quantita', type: 'number', validation: 'required|integer|min:1' }

positive

Sintassi: positive
Descrizione: Verifica che il valore sia un numero strettamente maggiore di zero. Lo zero non è considerato positivo.

Esempi:

// Valido
ValidationService.validate(10, 'positive')
ValidationService.validate(0.1, 'positive')
ValidationService.validate('5', 'positive')

// Non valido
ValidationService.validate(0, 'positive')   // zero non è positivo
ValidationService.validate(-5, 'positive')
ValidationService.validate('-1', 'positive')

// In schema DynamicFormLayouts
{ name: 'prezzo', type: 'number', validation: 'required|numeric|positive' }

negative

Sintassi: negative
Descrizione: Verifica che il valore sia un numero strettamente minore di zero. Lo zero non è considerato negativo.

Esempi:

// Valido
ValidationService.validate(-5, 'negative')
ValidationService.validate(-0.1, 'negative')
ValidationService.validate('-10', 'negative')

// Non valido
ValidationService.validate(0, 'negative')  // zero non è negativo
ValidationService.validate(10, 'negative')
ValidationService.validate('5', 'negative')

// In schema DynamicFormLayouts
{ name: 'saldo', type: 'number', validation: 'required|numeric|negative' }

Combinazioni tipiche

// Campo numero intero positivo obbligatorio con range
{ name: 'quantita', type: 'number', validation: 'required|integer|positive|max:9999' }

// Campo importo decimale obbligatorio (positivo o zero)
{ name: 'sconto', type: 'number', validation: 'required|numeric|between:0,100' }

// Campo numero opzionale (intero)
{ name: 'note', type: 'number', validation: 'integer' }