DEV Community

Cover image for Split text without spaces into list of words in Node.js
Parsa Kafi
Parsa Kafi

Posted on

Split text without spaces into list of words in Node.js

For my recent project, I need a trick to split strings contain English words to separate words. My stack is Node.js and no packages have been developed for my need.

For example, I need this string "youneedtolearnfromyourmistakes" split to words "You Need To Learn From Your Mistakes".

For this reason, I began searching for the development of a package for my need. And finally, with some open source project, I develop a package for split strings to words. The package called "wordsninja" has been released.

https://github.com/parsakafi/wordsninja
https://npmjs.com/package/wordsninja

Install

npm install wordsninja --save

Load package

const WordsNinjaPack = require('wordsninja');
const WordsNinja = new WordsNinjaPack();

Load dictionary

await WordsNinja.loadDictionary(); // First load dictionary

Add word(s)

WordsNinja.addWords('new word');

Parameters

  • word: The word(s) (string|array)

Split sentence

let words = WordsNinja.splitSentence(string, {camelCaseSplitter, capitalizeFirstLetter, joinWords});

Parameters

  • string: The string for split
  • options
    • camelCaseSplitter: Split by Camel Case, Default is false (optional)
    • capitalizeFirstLetter: Capitalize First Letter, Default is false (optional)
    • joinWords: Return join words as sentence, Default is false (optional)

Example

(async () => {
    await WordsNinja.loadDictionary(); // First load dictionary
    let string = 'youneedtolearnfromyourmistakes';
    let words = WordsNinja.splitSentence(string);
    console.log(words);
})();

Result

[ 'you', 'need', 'to', 'learn', 'from', 'your', 'mistakes' ]

More options

let string = 'youneedtolearnfromyourmistakes';
let words = WordsNinja.splitSentence(string,
    {
        camelCaseSplitter: true,  // Frist camel case spliting
        capitalizeFirstLetter: true,  // Capitalize first letter of result
        joinWords: true  // Join words
    }
);
console.log(words);

Result

You Need To Learn From Your Mistakes

Add Word(s)

You can add new word(s) to dictionary in run-time

WordsNinja.addWords('Parsa');  // Add one word
WordsNinja.addWords(['Parsa', 'Kafi']); // Add one or more words

Example

let string = 'parsayouneedtolearnfromyourmistakes';
WordsNinja.addWords('Parsa');
let words = WordsNinja.splitSentence(string,
    {
        capitalizeFirstLetter: true,  // Capitalize first letter of result
        joinWords: true  // Join words
    }
);
console.log(words);

Result

Parsa You Need To Learn From Your Mistakes

I hope you find it useful :)

Top comments (0)