0.0.1 • Published 3 years ago

@vanpariyar/text-manipulation v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

@vanpariyar/text-manipulation

this is the very simple.

install

npm install @vanpariyar/text-manipulation

use

const stringTOSlug = require('@vanpariyar/text-manipulation');

console.log( stringTOSlug( "THis is the Demo Title" ) );

Output > this-is-the-demo-title

Code Behind:

const stringTOSlug = function (str)
{
    str = str.replace(/^\s+|\s+$/g, ''); // trim
    str = str.toLowerCase();

    // remove accents, swap ñ for n, etc
    const from = "àáäâèéëêìíïîòóöôùúüûñçěščřžýúůďťň·/_,:;";
    const to   = "aaaaeeeeiiiioooouuuuncescrzyuudtn------";

    for (let i=0, l=from.length ; i<l ; i++)
    {
        str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
    }

    str = str.replace('.', '-') // replace a dot by a dash 
        .replace(/[^a-z0-9 -]/g, '') // remove invalid chars
        .replace(/\s+/g, '-') // collapse whitespace and replace by a dash
        .replace(/-+/g, '-') // collapse dashes
        .replace( /\//g, '' ); // collapse all forward-slashes

    return str;
}

module.exports = stringTOSlug;