UNPKG

@c_s_v_s_subrahmanyam/string-utils

Version:

A comprehensive utility library for advanced string operations.

94 lines (79 loc) 2.92 kB
function findUniqueWords(str) { const words = str.toLowerCase().match(/\b\w+\b/g) || []; return [...new Set(words)]; } function getShortestWord(str) { const words = str.match(/\b\w+\b/g) || []; return words.reduce((shortest, word) => word.length < shortest.length ? word : shortest, words[0] || ''); } function getLongestWord(str) { const words = str.match(/\b\w+\b/g) || []; return words.reduce((longest, word) => word.length > longest.length ? word : longest, words[0] || ''); } function countSentences(str) { const sentences = str.split(/[.!?]+/).filter(Boolean); return sentences.length; } function getWordsStartingWithConsonants(str) { return (str.match(/\b[bcdfghjklmnpqrstvwxyz]\w*\b/gi) || []); } function getWordsStartingWithVowels(str) { return (str.match(/\b[aeiou]\w*\b/gi) || []); } function countLines(str) { return str.split(/\r?\n/).length; } function isAnagram(str1, str2) { const format = str => str.toLowerCase().replace(/[^a-z0-9]/g, '').split('').sort().join(''); return format(str1) === format(str2); } function isPangram(str) { const alphabet = 'abcdefghijklmnopqrstuvwxyz'; const lowerStr = str.toLowerCase(); return [...alphabet].every(char => lowerStr.includes(char)); } function reverseSubstring(str, substring) { const reversed = substring.split('').reverse().join(''); return str.replace(substring, reversed); } function isSubstring(str, substring) { return str.includes(substring); } function generateRandomSubstring(str, length) { if (length > str.length) return ''; const startIndex = Math.floor(Math.random() * (str.length - length + 1)); return str.substring(startIndex, startIndex + length); } function generateRandomString(length) { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < length; i++) { result += chars.charAt(Math.floor(Math.random() * chars.length)); } return result; } function generatePasswordSuggestions(base) { const specialChars = '!@#$%^&*'; const randomSpecialChar = specialChars.charAt(Math.floor(Math.random() * specialChars.length)); return [ `${base}${randomSpecialChar}${Math.random().toString(36).slice(-2)}`, `${Math.random().toString(36).slice(-2)}${base.toUpperCase()}${randomSpecialChar}`, `${randomSpecialChar}${base.toLowerCase()}${Math.random().toString(36).slice(-2)}` ]; } module.exports = { findUniqueWords, getShortestWord, getLongestWord, countSentences, getWordsStartingWithConsonants, getWordsStartingWithVowels, countLines, isAnagram, isPangram, reverseSubstring, isSubstring, generateRandomSubstring, generateRandomString, generatePasswordSuggestions };