yoastseo
Version:
Yoast client-side content analysis
34 lines (33 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
var _sanitizeString = _interopRequireDefault(require("../sanitize/sanitizeString"));
var _replaceDiacritics = _interopRequireDefault(require("../transliterate/replaceDiacritics.js"));
var _addWordboundary = _interopRequireDefault(require("../word/addWordboundary.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** @module stringProcessing/stringToRegex */
/**
* Creates a regex from a string so it can be matched everywhere in the same way.
*
* @param {string} string The string to make a regex from.
* @param {string} [extraBoundary=""] A string that is used as extra boundary for the regex.
* @param {boolean} [doReplaceDiacritics=true] If set to false, it doesn't replace diacritics. Defaults to true.
*
* @returns {RegExp} regex The regex made from the keyword
*/
var _default = exports.default = (0, _lodash.memoize)(function (string, extraBoundary, doReplaceDiacritics) {
if ((0, _lodash.isUndefined)(extraBoundary)) {
extraBoundary = "";
}
if ((0, _lodash.isUndefined)(doReplaceDiacritics) || doReplaceDiacritics === true) {
string = (0, _replaceDiacritics.default)(string);
}
string = (0, _sanitizeString.default)(string);
string = (0, _lodash.escapeRegExp)(string);
string = (0, _addWordboundary.default)(string, false, extraBoundary);
return new RegExp(string, "ig");
});
//# sourceMappingURL=createWordRegex.js.map