UNPKG

yoastseo-dep

Version:

Yoast clientside page analysis

40 lines (35 loc) 1.39 kB
const suffixes = "(en|e|s)$"; const suffixesRegex = new RegExp( suffixes ); /** * Checks if a word is complex. * This is a helper for the Word Complexity assessment. As such, this helper is not bundled in Yoast SEO. * * @param {object} config The configuration needed for assessing the word's complexity, e.g., the frequency list. * @param {string} word The word to check. * * @returns {boolean} Whether or not a word is complex. */ export default function checkIfWordIsComplex( config, word ) { const lengthLimit = config.wordLength; const frequencyList = config.frequencyList; // All words are converted to lower case before processing to avoid excluding complex words that start with a capital letter. word = word.toLowerCase(); // The German word is not complex if its length is 10 characters or less. if ( word.length <= lengthLimit ) { return false; } // The word is not complex if it's in the frequency list. if ( frequencyList.includes( word ) ) { return false; } /* * If a word is longer than 10 characters and has a plural ending in -e, -s, or -en, we remove the ending * and check if the singular form can be found in the frequency list. * The word is not complex if the singular form is in the list. */ if ( suffixesRegex.test( word ) ) { word = word.replace( suffixesRegex, "" ); return ! frequencyList.includes( word ); } return true; }