Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,596 questions

55,330 answers

573 users

How to remove duplicate words with Unicode characters from free‑text in JavaScript

1 Answer

0 votes
/**
 * Removes duplicate words from a free-text string containing Unicode characters.
 * Preserves word order and the case of the first occurrence.
 *
 * @param {string} input - The input string containing text and punctuation.
 * @returns {string} Space-separated unique words.
 */
function removeDuplicateWords(input) {
  if (!input || !input.trim()) {
    return '';
  }

  // 1. Unicode property escape pattern (\p{L} = letters, \p{N} = numbers).
  //    'g' flag finds all matches, 'u' enables full Unicode character support.
  const wordPattern = /[\p{L}\p{N}_]+/gu;
  const matches = input.match(wordPattern) || [];

  // 2. Set for O(1) duplicate tracking.
  const seen = new Set();
  const uniqueWords = [];

  // 3. Keep first occurrence while ignoring case.
  for (const word of matches) {
    const lowerWord = word.toLowerCase();
    if (!seen.has(lowerWord)) {
      seen.add(lowerWord);
      uniqueWords.push(word);
    }
  }

  // 4. Join unique words with a single space.
  return uniqueWords.join(' ');
}

// Main
const input = "Hello! こんにちは,  ,hello こんにちは Bună ziua; Γεια σας Bună ziua *HELLO* Γεια σας";

const result = removeDuplicateWords(input);

console.log(result);



/*
run:

Hello こんにちは Bună ziua Γεια σας

*/

 



answered 3 days ago by avibootz

Related questions

...