@andreychumak
junior

Как проверить входит ли строка в другую строку?

Делаю автокомплит.
нужно проверить содержит ли строка: "Автошина ТЮМЕНЬ 175/70"
вот такой запрос: "шина 175"

Как это можно сделать?

Сделал
for (i = 0; i < data.length; i++)
      if (~data[i][0].toLowerCase().indexOf(term)) matches.push(data[i]); 
      // data[i][0] - это строка "Автошина ТЮМЕНЬ 175/70"
      // term - запрос, который ввел пользователь


сейчас он проверяет только если есть точное совпадение, скажем в "Автошина ТЮМЕНЬ 175/70" есть "шина Тюмень"
  • Вопрос задан
  • 281 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Режем введённую пользователем строку на куски:

const termParts = term.trim().toLowerCase().split(/\s+/);

Проверяем наличие каждой части:

if (termParts.every(n => data[i][0].toLowerCase().includes(n))) {
Ответ написан
Комментировать
@lnked
var string = 'Автошина ТЮМЕНЬ 175/70';
var find = 'шина 175';

var particles = find.toLowerCase().split(' ');
string = string.toLowerCase();

var status = true;

for (var i = particles.length - 1; i >= 0; i--) {
	if (string.indexOf(particles[i]) < 0)
	{
		status = false;
	}
}

console.log('Содержит: ', status);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
flexaccess
@flexaccess
Намерен работать программистом
Самый простой вариант. Ну и плюс нужно привести к одному регистру

const str = "Автошина ТЮМЕНЬ 175/70";
if (str.includes('шина') && str.includes('175')) {
    console.log('Содержит');
} else {
    console.log('нет');
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы