concepts-parser
Version:
Concepts Extracting from text
44 lines (43 loc) • 1.32 kB
JavaScript
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;
;