integer validator
Validate an integer number
The validator accepts both positive and negative numbers.
Options
Using with form field
Name | HTML attribute | Type | Description |
---|
message | data-fv-integer___message | String | The error message |
thousandsSeparator | data-fv-integer___thousands-separator | String | The thousands separator |
The popular values for the thousandsSeparator
option are:
- An empty string (the default value)
- A bank space
- A comma (
,
) - A dot (
.
)
Name | HTML attribute | Type | Description |
---|
decimalSeparator | data-fv-integer___decimal-separator | String | The decimal separator |
The popular values for the decimalSeparator
option are:
- A dot (
.
) (the default value) - A comma (
,
)
The thousandsSeparator
and decimalSeparator
options are useful if your country use particular separators for thousands and decimal parts. See the next Supporting locales section for more details.
Using the ES6 module
import { integer } from '/vendors/@form-validation/cjs/validator-integer';
const result = integer().validate({
value: ...,
options: {
decimalSeparator: ...,
message: ...,
thousandsSeparator: ...,
},
});
Using the npm package
- Install the validator package:
$ npm install @form-validation/validator-integer
- Use the
integer
validator:
import { integer } from '@form-validation/validator-integer';
const result = integer().validate({
value: ...,
options: {
decimalSeparator: ...,
message: ...,
thousandsSeparator: ...,
},
});
Supporting locales
The thousands and decimal separators might take different value in certain countries. The following table introduces some popular values that are defined by various countries.
Country | Thousands separator | Decimal separator |
---|
United States | A comma (,) | A dot (.) |
France | A blank space | A comma (,) |
Italy | A dot (.) | A comma (,) |
formValidationInstance
.updateValidatorOption('number', 'integer', 'thousandsSeparator', thousandsSeparator)
.updateValidatorOption('number', 'integer', 'decimalSeparator', decimalSeparator);
Since the thousands and decimal separators are various, the field should use type="text"
attribute. Using type="number"
for field will restrict the input to use default separators for an integer number (an empty string for thousands, and a dot for decimal parts).
Basic example
HTML5 Example
When the
Declarative plugin is used, the integer validator will be enabled automatically when using HTML5
type="number"
attribute.
NPM package example
The following snippet shows how to use the integer validator with the npm package:
import { integer } from '@form-validation/validator-integer';
const res1 = integer().validate({
value: '967295.00',
options: {
thousandsSeparator: '',
decimalSeparator: '.',
message: 'The value is not a valid integer number',
},
});
const res2 = integer().validate({
value: '4967,295',
options: {
thousandsSeparator: ',',
decimalSeparator: '.',
message: 'The value is not a valid integer number',
},
});
const res3 = integer().validate({
value: '4 294 967 295',
options: {
thousandsSeparator: ' ',
decimalSeparator: ',',
message: 'The value is not a valid integer number',
},
});
See also
Changelog
- The validator doesn't work properly if the
message
property isn't defined