@Mordexay

JS, как сделать поиск в строке и выполнить условие?

если в var str есть
слово "яблоко, лимон, груша" alert ('1')
если есть "вишня, арбуз, клубника" выведи alert ('2')
если есть "каштан, тарелка, борщ" выведи alert ('3')
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Брать каждое из проверочных слов и по очереди искать в данном тексте.

text.indexOf(keyword) вернёт -1 если ключевое слово не найдено в тексте. Или его позицию от 0 и больше, если нашлось. См. indexOf()

Выражение !!~x вернёт true для x == 0 или больше, и false только для x == -1.

Примерно так:
function areYouThere(str) {
  var i, j, found = 0, filters = [
    "яблоко, лимон, груша".split(', '),
    "вишня, арбуз, клубника".split(', '),
    "каштан, тарелка, борщ".split(', ')
  ];
  
  for( i = 0; i < filters.length; i++) {
    for( j = 0; j < filters[i].length; j++) {
      if( !!~str.indexOf(filters[i][j])) found = found | 1 << i;
    }
  }
  
  return found;
}

var mask = areYouThere("арбуз вам не яблоко!");
if( mask & 1 << 0) alert (1);
if( mask & 1 << 1) alert (2);
if( mask & 1 << 2) alert (3);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
arr = 'Яблоко ...'.split(' ')
r = find(arr, "арбуз");
if r !== -1 {....}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы