Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2018, 11:15
Новичок на форуме
Отправить личное сообщение для monsara Посмотреть профиль Найти все сообщения от monsara
 
Регистрация: 14.06.2018
Сообщений: 4

Функция проверки содержания определенных слов в строке
Задача. Необходимо написать функцию checkForSpam(str)

Функция принимает 1 параметр str - строку, и проверять ее на содержание слов: spam и sale

Если нашли зарещенное слово то функция возвращает true, если запрещенных слов нет функция возвращает false

PS: слова могут быть в произвольном регистре

Как подправить код ниже, чтобы получить результат из комментариев к console.log после вызова функции
'use strict';

const checkForSpam = function (str) { let arrStr = str.split(' ');

for (let i = 0; i < arrStr.length; i += 1) { let word = arrStr[i].toLowerCase;

if (arrStr[i].toLowerCase === 'spam' || arrStr[i].toLowerCase === 'sale') {
  return true;
}

return false;
}

};

// Вызовы функции для проверки console.log( checkForSpam('Latest technology news') ); // false

console.log( checkForSpam('JavaScript weekly newsletter') ); // false

console.log( checkForSpam('Get best sale offers now!') ); // true

console.log( checkForSpam('[SPAM] How to earn fast money?') ); // true
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2018, 11:27
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,081

alert(new RegExp('spam|sale','i').test('sPaM'));
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2018, 11:35
Новичок на форуме
Отправить личное сообщение для monsara Посмотреть профиль Найти все сообщения от monsara
 
Регистрация: 14.06.2018
Сообщений: 4

Спасибо. Но мне бы попроще, обычной функцией. Так как я только изучаю и разбираюсь в JS.
Ответить с цитированием
  #4 (permalink)  
Старый 20.06.2018, 12:07
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,081

Точнее целое слово так:
function checkForSpam(string) {
    return new RegExp('\\bspam\\b|\\bsale\\b', 'i').test(string);
}
console.log(checkForSpam('sPaM'), checkForSpam('sPaMmer'));

Функцию исправить так, но всё равно она не найдет такую конструкцию "[SPAM]"
function checkForSpam(str) {
    var arr = str.toLowerCase().split(' ');
    for (var i = 0; i < arr.length; i++) {
        var word = arr[i];
        if (word == 'spam' || word == 'sale') {
            return true;
        }
    }
    return false;
}

Последний раз редактировалось Rise, 20.06.2018 в 12:12.
Ответить с цитированием
  #5 (permalink)  
Старый 20.06.2018, 13:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,251

Сообщение от monsara
Как подправить код ниже, чтобы получить результат из комментариев к console.log после вызова функции
Как вариант...

var checkForSpam = function (str) { 
	var re=/(^|\b|\[)(sale|spam)(\b|\]|$)/i;
	return re.test(str);
};

alert( checkForSpam('JavaScript weekly newsletter') ); // false
alert( checkForSpam('Get best sale offers now!') ); // true
alert( checkForSpam('[SPAM] How to earn fast money?') ); // true
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестает работать функция проверки выбора checkboks sanyomix Элементы интерфейса 2 12.06.2013 22:50
Вставка текста в textarea по клику после определенных слов x-miller-x Общие вопросы Javascript 0 05.09.2012 06:27
Функция проверки не пропускает Sergios Общие вопросы Javascript 4 05.07.2012 20:26
Функция проверки возможности перехода на страницу. Cerber24 Events/DOM/Window 10 05.10.2011 08:37
Функция проверки onDomReady. Не могу разобраться с кодом vandy3 Общие вопросы Javascript 6 08.11.2010 08:47