Skip to content

Instantly share code, notes, and snippets.

@vintesh
Last active April 19, 2017 18:45
Show Gist options
  • Save vintesh/ca36dc70e9aebc86b161dfa1df5b3401 to your computer and use it in GitHub Desktop.
Save vintesh/ca36dc70e9aebc86b161dfa1df5b3401 to your computer and use it in GitHub Desktop.
Number validations - String Inputs - Typescript
export class NumberValidators {
/**
* Only works for Integer & Positive Number
* @param val String containing number like "$1,123,123"" or "1234" or "1,213" etc
*/
static IsPositiveNumber(val: string): boolean {
return !GeneralValidators.GetNumberFromString(val) ? false : true;
}
/**
* Returns if Number is Non-Negative or Not.
* @param val String containing number like "$-1,123,123", "-$1,123,123" or "-1234" or "-1,213" etc
*/
static IsNonNegativeNumber(val: string): boolean {
if (GeneralValidators.GetNumberFromString(val) === null) {
return false;
}
return GeneralValidators.GetNumberFromString(val) >= 0 ? true : false;
}
/**
* Only works for Integer & Positive Number
* @param val String containing number like "$1,123,123"" or "1234" or "1,213" etc
*/
static GetNumberFromString(val: string): number {
val = val ? val + '' : "";
val = val.replace(/[$,]/g, '');
if (val.match(/^\d+$/) || val.match(/^-\d+$/)) {
return Number.parseInt(val) !== NaN ? Number.parseInt(val) : null
} else if (val.match(/^\d+\.\d+$/) || val.match(/^-\d+\.\d+$/)) {
return Number.parseFloat(val) !== NaN ? Number.parseFloat(val) : null;
} else {
return null;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment