Как изменить этот код, чтобы создать приложение для диктовки? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть код, который просто сравнивает str2 (ввод пользователя) с str1 (наша справочная строка), чтобы проверить, правильно ли набрано какое-либо слово в str2 или правильно.Код работает нормально, но я не могу найти решение этой проблемы:

Я хочу игнорировать лишние пробелы, запятые и точки и любые другие знаки записи для сравнения в обеих строках.точно так же, как приложение для диктовки ...

например, строки ниже должны принимать равные строки на выходе:

str1 = "Я был отправлен на землю"

str2 =«Меня отправили: земля».

Любые другие модификации, улучшающие этот код, чрезвычайно приветствуются.Пожалуйста, помогите ...

var str1 = "I was sent to earth to protect my cousin";
var str2 = "I waz Sent to earth to protet my cousine";

let a = str1.toLowerCase().split(' ');
let b = str2.toLowerCase().split(' ');
let res1 = b.filter(i => !a.includes(i));
let res2 = a.filter(i => !b.includes(i));
console.log(res1);
console.log(res2);

var str1 = res1.toString();
str1 = str1.replace(/,/g, '\n');

var str2 = res2.toString();
str2 = str2.replace(/,/g, '\n');

var player = GetPlayer();
player.SetVar("wrong_Spell",str1);
player.SetVar("right_Spell",str2);

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете использовать match, чтобы извлечь слова, используя \w+:

function words(s) {
    return s.toLowerCase().match(/\w+/g);
}

var str1 = "I was sent to earth to protect my cousin";
var str2 = "I waz Sent to earth to protet my cousine";

let a = words(str1);
let b = words(str2);
let res1 = b.filter(i => !a.includes(i));
let res2 = a.filter(i => !b.includes(i));
console.log(res1);
console.log(res2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...