@seges/angular-validators
Version:
TypeScript 1.8.10
35 lines (28 loc) • 1.01 kB
text/typescript
import { IValidator } from "../IValidator";
export class IntegerValidator implements IValidator<void> {
private regex: RegExp;
constructor() {
this.regex = new RegExp("^[0-9]*$");
}
/**
* Validate input as integer.
* If value is parseable to integer return true. Otherwise return false.
*/
isValid(value: string | number): boolean {
if (!value) {
return false;
}
if (typeof value === "string") {
return this.regex.test(value);
}
// Number.isInteger() polyfill implementation from MDN
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger#Polyfill
if (typeof value === "number") {
return isFinite(value)
&& value > -9007199254740992
&& value < 9007199254740992
&& Math.floor(value) === value;
}
return false;
}
}