UNPKG

asksuite-core

Version:
40 lines (33 loc) 970 B
const _ = require('lodash'); const md5 = require('md5'); class StringUtils { static unaccent(text) { return text.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); } static generateHash(text) { const plainText = _.chain(text) .toLower() // lowercase .value() // get value from chain .replace(/\s{2,}/g, ' '); // remove duplicate spaces return md5(plainText || text); } static normalizeText(text) { try { return text .trim() .replace(/\s\s+/g, ' ') .replace(/[.,\/#!$%^&*;:{}=\-_~()?@]/g, '') .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .toLowerCase(); } catch (e) { console.error('StringUtils.normalizeText', text, e); return text; } } static hasOnlySpecialChars(text) { const containsLettersNumbersOrSpacesRegExp = /[\p{L}\p{N}\s]/u; return !containsLettersNumbersOrSpacesRegExp.test(text); } } module.exports = StringUtils;