Sha256: a4a9476be4255a54dba2fe3af237bdf79cdcc3b9cde9f6b93fa36ab18e73074a

Contents?: true

Size: 1.21 KB

Versions: 14

Compression:

Stored size: 1.21 KB

Contents

// @ts-check

/**
 * Looks for a search within a string
 * 
 * @param {string} string 
 * @param {string} search 
 * @returns 
 */
 function contains(string, search) {
    return string.indexOf(search) > -1;
}

/**
 * Simplifies a string to plain lower case, removing diacritic characters and hyphens
 * This means a search for "co-op" will be found in "COOP" and "Café" will be found in "cafe"
 * @param {string} string 
 * @returns 
 */
 function sanitise(string) {
    // @ts-ignore
    if (String.prototype.normalize) {
        // Reduces diacritic characters to plain characters
        string.trim().normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase().replace(/-/g, '');
    }

    // Some browsers can't normalise strings
    return string.trim().toLowerCase().replace(/-/g, '');
}

/**
 * Sets a minimum length for a search
 * @param {string} string 
 * @returns 
 */
 function isLongEnough(string) {
    return string.length > 1;
}

/**
 * Splits a sentence into individual search terms
 * @param {string} string 
 * @returns 
 */
function explode(string) {
    return string.split(' ').filter(isLongEnough).map(sanitise);
}

export { contains, sanitise, explode };

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
fenton-jekyll-boilerplate-0.0.15 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.14 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.13 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.12 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.11 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.10 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.9 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.8 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.7 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.6 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.4 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.3 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.2 assets/js/modules/string.js
fenton-jekyll-boilerplate-0.0.1 assets/js/modules/string.js