Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ console.log(isValidEmail('jhondoe@gmail.com')); // true

### `isValidNumber(value, allowZero, allowNegative)`

- Validates if a value of type string is a valid number
- Validates if a value of type string or number is a valid number
- If allowZero equals true, '0' would return true
- If allowNegative equals true, negative values would return true

Expand All @@ -92,11 +92,13 @@ console.log(isValidNumber('123a424', true, true)); // false
console.log(isValidNumber('123a424', false, true)); // false
console.log(isValidNumber('1.23a424', false, true)); // false
console.log(isValidNumber('123-424', false, true)); // false
console.log(isValidNumber('0')); // false
console.log(isValidNumber('0')); // false
console.log(isValidNumber('0', true)); // true
console.log(isValidNumber('-1', true, true)); // true
console.log(isValidNumber('201')); // true
console.log(isValidNumber('3.14159')); // true
console.log(isValidNumber(452)); // true
console.log(isValidNumber(3.1459)); // true
```


Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cobuildlab/validation-utils",
"version": "0.0.3",
"version": "0.0.4",
"description": "This is package to deal with common scenarios working with Javascript validations",
"main": "lib/index.js",
"types": "./lib/index.d.ts",
Expand Down
2 changes: 2 additions & 0 deletions src/__tests__/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ test('isValidNumber', () => {
expect(isValidNumber('-1', true, true)).toBe(true);
expect(isValidNumber('201')).toBe(true);
expect(isValidNumber('3.14159')).toBe(true);
expect(isValidNumber(452)).toBe(true);
expect(isValidNumber(3.1459)).toBe(true);
});

test('isValidInteger', () => {
Expand Down
8 changes: 4 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,19 @@ export const isValidEmail = (email: string): boolean => {
/**
* Validate if a string is a valid number.
*
* @param {string} stringToTest - The string to validate as a number.
* @param {string|number} value - The string to validate as a number.
* @param {boolean} [allowZero=false] - If the string should accept 0 as a valid number.
* @param {boolean} [allowNegative=false] - If the string should negative values.
*
* @returns {boolean} If the string is valid number or not.
*/
export const isValidNumber = (stringToTest: string, allowZero: boolean = false, allowNegative: boolean = false): boolean => {
export const isValidNumber = (value: string|number, allowZero: boolean = false, allowNegative: boolean = false): boolean => {
const regExp = /^(-?[0-9]+)((\.|,)[0-9]+)?$/;

if (!regExp.test(stringToTest))
if (typeof value === 'string' && !regExp.test(value))
return false;

const numberToTest = parseInt(stringToTest, 10);
const numberToTest = parseInt(value.toString(), 10);

if (isNaN(numberToTest) || typeof numberToTest !== 'number') return false;

Expand Down