ea483f476722f14fa41edf8832074600ca8df8ce
hiram
  Sun Sep 8 17:19:36 2024 -0700
prevent duplication of words in the result during the highlight process refs #32596

diff --git src/hg/js/assemblySearch.js src/hg/js/assemblySearch.js
index bd01a27..fb82437 100644
--- src/hg/js/assemblySearch.js
+++ src/hg/js/assemblySearch.js
@@ -311,36 +311,36 @@
               wholeWord.push(subPrefix[i]);
            }
            prefix.push(subPrefix[i].replace(/\*$/, ''));
          } else {
            prefix.push(noPrefix.replace(/\*$/, ''));
          }
        } else {
          wholeWord.push(noPrefix);
        }
     }
     if (wholeWord.length > 0) {
       for (let word of wholeWord) {
         for (let key in rowData) {
            if (rowData.hasOwnProperty(key)) {
               if (typeof rowData[key] === 'string') {
-                 let value = rowData[key];
-                 let subWords = value.match(/(\w+)|(\W+)/g);
-                 let newString = "";
                  let wholeSubs = word.match(/(\w+)/g);
                  if (wholeSubs && wholeSubs.length > 0) {
                    for (let whole of wholeSubs) {
+                     let newString = "";
+                     let value = rowData[key];
+                     let subWords = value.match(/(\w+)|(\W+)/g);
                      for (let subWord of subWords) {
                        if ( whole.toLowerCase() === subWord.toLowerCase() ) {
                           newString += "<span class='highlight'>" + subWord + "</span>";
                        } else {
                           newString += subWord;
                        }
                      }
                      newString = newString.trim();
                      if (newString !== rowData[key])
                         rowData[key] = newString;
                    }	//	for (let whole of wholeSubs)
                  }	//	if (wholeSubs.length > 0)
               }	//	if (typeof rowData[key] === 'string')
            }	//	if (rowData.hasOwnProperty(key))
         }	//	for (let key in rowData)