UNPKG

concepts-parser

Version:
44 lines (43 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils = require("../../utils"); const ABBR_REG = /^([^\d_`&-]\.){1,2}$/; class Word { constructor(value, index) { this.reset(value, index); } reset(value, index) { if (typeof index === "number" && index > -1) { this.index = index; } else { this.index = this.index || 0; } const upperValue = value.toUpperCase(); if (value.length > 1) { if (value[value.length - 1] === ".") { if (!(value === upperValue && ABBR_REG.test(value))) { value = value.substr(0, value.length - 1); } } } this.isAbbr = upperValue === value; this.isNumber = utils.isDigit(value); this.endsWithDot = value[value.length - 1] === "."; this.value = value; } isValid() { if (!this.value) { return false; } const value = this.value; if (value.length !== value.trim().length) { return false; } if (!this.isNumber) { return value.toLowerCase() !== value.toUpperCase(); } return true; } } exports.Word = Word;