Скрипт получает переменную и сравнивает ее со значением, и при равенстве выполняет код
else if(result === 'Сколько времени'){
...
}
Проблема в том, что хочется как-то через регулярные выражение сделать, чтобы он сравнивал похожие варианты( сколько сейчас времени, какое время). Не работал с такими выражениями и не представляю как тут реализовать такое(можно конечно через кучу условий, но слишком много получится).
Вот такое выражение составил
"(подскажите\s+?){0,1}(сколько|какое|которое|который)(\s+?сейчас){0,1}\s+?(времени|время|час|часов)"
оно, конечно и неправильные с точки зрения чистого русского языка выражения пропускает, например сколько сейчас час
. Но думаю это не является проблемой.
Тестируем тут - https://regex101.com/r/hkJw1k/1
код проверки может быть такой:
var regex = /(подскажите\s+?){0,1}(сколько|какое|которое|который)(\s+?сейчас){0,1}\s+?(времени|время|час|часов)/;
function TestTimeRegex(str) {
return str.search(regex) != -1;
}
console.log(TestTimeRegex("подскажите сколько сейчас времени"));
console.log(TestTimeRegex("трам пам время"));
В вашем случае
else if(TestTimeRegex(result)){
...
}
Я бы начал с того что завёл списочек всех вариантов, пока просто в текстовом виде, из него будет ясно как лучше запрограммировать такую систему.
Дело в том что если вариантов очень много, то писать регулярное выражение может быть сложное дело, а кроме того оно может выглядеть очень некрасиво.
Предлагаю создать некоторый массив атомарных регулярных выражений, и уже на основе массива через цикл сформировать результирующее регулярное выражение.
Можно даже просто сделать массив и просто в цикле саму проверку сделать, если есть одно совпадение, значит совпало. В любом случае красивее чем тупо подряд условия писать.
Как можно получить хэш сервера Minecraft? Почитал здесь (Server ID String), но ничего не понялПишу на PHP
Пишу не большой Product List с функциями CRUDРеализовал это всё в процедурном стиле, сейчас переделываю на ООП вариант, и немножко подвис вопрос...