// 4.5. Code points https://infra.spec.whatwg.org/#code-points export class CodePoints { // https://infra.spec.whatwg.org/#ascii-code-point public static ASCIICodePoint(input: string): boolean { // An ASCII code point is a code point in the range U+0000 NULL to U+007F DELETE, inclusive. // eslint-disable-next-line no-control-regex return /[\u0000-\u007F]/.test(input); } // https://infra.spec.whatwg.org/#ascii-alphanumeric public static ASCIIAlphanumeric(input: string): boolean { // An ASCII alphanumeric is an ASCII digit or ASCII alpha. return this.ASCIIiAlpha(input) || this.ASCIIDigit(input); } // https://infra.spec.whatwg.org/#ascii-alpha public static ASCIIiAlpha(input: string): boolean { // An ASCII alpha is an ASCII upper alpha or ASCII lower alpha. return this.ASCIIUpperAlpha(input) || this.ASCIILowerAlpha(input); } // https://infra.spec.whatwg.org/#ascii-upper-alpha public static ASCIIUpperAlpha(input: string): boolean { // An ASCII upper alpha is a code point in the range U+0041 (A) to U+005A (Z), inclusive. return /[\u0041-\u005A]/.test(input); } // https://infra.spec.whatwg.org/#ascii-lower-alpha public static ASCIILowerAlpha(input: string): boolean { // An ASCII lower alpha is a code point in the range U+0061 (a) to U+007A (z), inclusive. return /[\u0061-\u007A]/.test(input); } // https://infra.spec.whatwg.org/#ascii-digit public static ASCIIDigit(input: string): boolean { // An ASCII digit is a code point in the range U+0030 (0) to U+0039 (9), inclusive. return /[\u0030-\u0039]/.test(input); } // https://infra.spec.whatwg.org/#ascii-string public static ASCIIString(input: string): boolean { // An ASCII string is a string whose code points are all ASCII code points. return input.split('').every(codePoint => this.ASCIICodePoint(codePoint)); } }