1. Задуматься почему так получилось и по возможности разграничить.
2. Не забывать что эстетика это конечно хорошо, но клиенту важнее производительность - отцы как бэ открытым текстом говорят - хочешь бложик, так не выеживайся - слепи по быстрому, а если что рефакторинг уже изобрели.
Вариантов масса, я например в последнее время активно использую https://blueimp.github.io/JavaScript-Templates/ , создается шаблон для записи (допустим товара в каталоге) и циклом передаем/выводим записи.
в php есть similar_text и soundex, поищи аналоги для js.
Вычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1).