char-info
Version:
Unicode character information library.
214 lines • 6.52 kB
JavaScript
;
/**
* 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