UNPKG

char-info

Version:

Unicode character information library.

214 lines 6.52 kB
"use strict"; /** * Basic ASCII character indicators and character codes. * * @module char-info/ascii * @preferred */ Object.defineProperty(exports, "__esModule", { value: true }); exports.isAscii = exports.isWordChar = exports.isSpace = exports.isNewline = exports.isLower = exports.isUpper = exports.isLetter = exports.isDigit = exports.isHex = exports.isAsciiCode = exports.isWordCharCode = exports.isSpaceCode = exports.isNewlineCode = exports.isLowerCode = exports.isUpperCode = exports.isLetterCode = exports.isDigitCode = exports.isHexCode = exports.AsciiCodes = void 0; /** Common ASCII character codes. */ var AsciiCodes; (function (AsciiCodes) { AsciiCodes._ = "_".charCodeAt(0); AsciiCodes.a = "a".charCodeAt(0); AsciiCodes.f = "f".charCodeAt(0); AsciiCodes.F = "F".charCodeAt(0); AsciiCodes.z = "z".charCodeAt(0); AsciiCodes.A = "A".charCodeAt(0); AsciiCodes.Z = "Z".charCodeAt(0); AsciiCodes.zero = "0".charCodeAt(0); AsciiCodes.nine = "9".charCodeAt(0); AsciiCodes.newline = "\n".charCodeAt(0); AsciiCodes.maxAscii = 127; AsciiCodes.carriageReturn = "\r".charCodeAt(0); AsciiCodes.space = " ".charCodeAt(0); AsciiCodes.tab = "\t".charCodeAt(0); AsciiCodes.minus = "-".charCodeAt(0); AsciiCodes.plus = "+".charCodeAt(0); AsciiCodes.decimalPoint = ".".charCodeAt(0); AsciiCodes.e = AsciiCodes.a + 4; AsciiCodes.E = AsciiCodes.A + 4; AsciiCodes.underscore = "_".charCodeAt(0); })(AsciiCodes || (exports.AsciiCodes = AsciiCodes = {})); /** * Returns true if `code` is a hex character: `[0-9a-fA-F]`. * * @param code The character code. */ function isHexCode(code) { return ((code >= AsciiCodes.A && code <= AsciiCodes.F) || (code >= AsciiCodes.a && code <= AsciiCodes.f) || (code >= AsciiCodes.zero && code <= AsciiCodes.nine)); } exports.isHexCode = isHexCode; /** * Returns true if `code` is a digit in base `base`. * * @param code The character code. * @param base The base. */ function isDigitCode(code, base = 10) { const baseDif = base - 10; if (baseDif <= 0) { return code >= AsciiCodes.zero && code <= AsciiCodes.nine + baseDif; } else { return ((code >= AsciiCodes.zero && code <= AsciiCodes.nine) || (code >= AsciiCodes.a && code < AsciiCodes.a + baseDif)); } } exports.isDigitCode = isDigitCode; /** * Returns true if `code` is a latin letter, `[a-zA-Z]`. * * @param code The character code. */ function isLetterCode(code) { return ((code >= AsciiCodes.a && code <= AsciiCodes.z) || (code >= AsciiCodes.A && code <= AsciiCodes.Z)); } exports.isLetterCode = isLetterCode; /** * Returns true if `code` is a latin uppercase letter, `[A-Z]`. * * @param code The character code. */ function isUpperCode(code) { return code >= AsciiCodes.A && code <= AsciiCodes.Z; } exports.isUpperCode = isUpperCode; /** * Returns true if `code` is a latin lowercase letter, `[a-z]`. * * @param code The character code. */ function isLowerCode(code) { return code >= AsciiCodes.a && code <= AsciiCodes.z; } exports.isLowerCode = isLowerCode; /** * Returns true if `code` is an ASCII newline character: `[\r\n]`. * * @param code The character code. */ function isNewlineCode(code) { return code === AsciiCodes.carriageReturn || code === AsciiCodes.newline; } exports.isNewlineCode = isNewlineCode; /** * Returns true if `code` is an ASCII inline space char: `[ \t]`. * * @param code The character code. */ function isSpaceCode(code) { return code === AsciiCodes.space || code === AsciiCodes.tab; } exports.isSpaceCode = isSpaceCode; /** * Returns true if `code` is a word character, which is a digit, a letter, dash or underscore: * `[0-9a-zA-Z_-]`. * * @param code The character code. */ function isWordCharCode(code) { return ((code >= AsciiCodes.A && code <= AsciiCodes.Z) || (code >= AsciiCodes.zero && code <= AsciiCodes.nine) || (code >= AsciiCodes.a && code <= AsciiCodes.z) || code === AsciiCodes.underscore || code === AsciiCodes.minus); } exports.isWordCharCode = isWordCharCode; /** * Returns true if `code` is an ASCII character code. * * @param code The character code. The char code. */ function isAsciiCode(code) { return code >= 0 && code <= AsciiCodes.maxAscii; } exports.isAsciiCode = isAsciiCode; /** * Returns true if `char` begins with a hex character: `[a-fA-F0-9]`. * * @param char A string representing a character. */ function isHex(char) { return isHexCode(char.charCodeAt(0)); } exports.isHex = isHex; /** * Returns true if `char` is a digit in base `base`. * * @param char A string representing a character. * @param base The base. */ function isDigit(char, base = 10) { return isDigitCode(char.charCodeAt(0), base); } exports.isDigit = isDigit; /** * Returns true if `char` begins with a latin letter: `[A-Za-z]`. * * @param char A string representing a character. */ function isLetter(char) { return isLetterCode(char.charCodeAt(0)); } exports.isLetter = isLetter; /** * Returns true if `char` begins with an uppercase latin letter: `[A-Z]`. * * @param char A string representing a character. */ function isUpper(char) { return isUpperCode(char.charCodeAt(0)); } exports.isUpper = isUpper; /** * Returns true if `char` begins with a lowercase latin letter: `[a-z]`. * * @param char A string representing a character. */ function isLower(char) { return isLowerCode(char.charCodeAt(0)); } exports.isLower = isLower; /** * Returns true if `char` begins with a newline: `[\r\n]`. * * @param char A string representing a character. */ function isNewline(char) { return isNewlineCode(char.charCodeAt(0)); } exports.isNewline = isNewline; /** * Returns true if `char` begins with an inline space: `[ \t]`. * * @param char A string representing a character. */ function isSpace(char) { return isSpaceCode(char.charCodeAt(0)); } exports.isSpace = isSpace; /** * Returns true if `char` begins with a word char: a letter, digit, underscore, or dash: * `[a-zA-Z0-9_-]. * * @param char A string representing a character. */ function isWordChar(char) { return isWordCharCode(char.charCodeAt(0)); } exports.isWordChar = isWordChar; /** * Returns true if `char` begins with an ASCII character. * * @param char A string representing a character. */ function isAscii(char) { return isAsciiCode(char.charCodeAt(0)); } exports.isAscii = isAscii; //# sourceMappingURL=ascii.js.map