yoastseo
Version:
Yoast client-side content analysis
38 lines (36 loc) • 1.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _lodash = require("lodash");
var _addWordboundary = _interopRequireDefault(require("../word/addWordboundary.js"));
var _replaceDiacritics = _interopRequireDefault(require("../transliterate/replaceDiacritics"));
var _sanitizeString = _interopRequireDefault(require("../sanitize/sanitizeString"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** @module stringProcessing/createRegexFromArray */
/**
* Creates a regex of combined strings from the input array.
*
* @param {string[]} array The array with strings
* @param {boolean} [disableWordBoundary=false] Boolean indicating whether or not to disable word boundaries.
* @param {string} [extraBoundary=""] A string that is used as extra boundary for the regex.
* @param {boolean} [doReplaceDiacritics=false] If set to true, it replaces diacritics. Defaults to false.
*
* @returns {RegExp} regex The regex created from the array.
*/
function _default(array, disableWordBoundary = false, extraBoundary = "", doReplaceDiacritics = false) {
array = (0, _lodash.map)(array, function (string) {
if (doReplaceDiacritics) {
string = (0, _replaceDiacritics.default)(string);
}
string = (0, _sanitizeString.default)(string);
if (disableWordBoundary) {
return string;
}
return (0, _addWordboundary.default)(string, true, extraBoundary);
});
const regexString = "(" + array.join(")|(") + ")";
return new RegExp(regexString, "ig");
}
//# sourceMappingURL=createRegexFromArray.js.map