Сравните ответ пользователя со строкой, используя JavaScript для викторины - PullRequest
0 голосов
/ 02 июля 2018

У меня есть поле ввода для пользователя, который слушает музыку и пытается найти правильного исполнителя или название трека.

<input type="search" id="search" class="form-control form-control-lg" name="search" autocomplete="off" autofocus>

Я бы хотел сравнить его с двумя переменными JavaScript:

  • track_name = "Alicia Keys";
  • artist_name = "Fallin '";

Проблема заключается в обработке ошибок при наборе текста человеком. например: "alicia key falin" должен возвращать true для исполнителя и названия трека.

Я уже пробовал сценарии о Расстояние Хэмминга , а также о библиотеке fusejs , но результат меня не убеждает.

Актуальные тесты:

function hammingDistance(str1, str2) {
  var dist = 0;
  str1 = str1.toLowerCase();
  str2 = str2.toLowerCase();
  for (var i = 0, j = Math.max(str1.length, str2.length); i < j; i++) {
    if (!str1[i] || !str2[i] || str1[i] !== str2[i]) {
      dist++;
    }
  }
  return dist;
}

Целью является предотвращение ошибок, связанных с заглавными и строчными буквами, дефисами, точками, запятыми, числами, особенностями, умениями и т. Д.

Есть ли библиотеки или сценарии для правильной обработки?

...