Просмотр полной версии : Задачка (Проверка на спам)
Привет, не могу отловить ошибку :)
"use strict";
var str = prompt('Введите значение');
str = str.toLowerCase;
function checkSpam(str){
if(str.indexOf('viagra') >= 0 || str.indexOf('xxx') >= 0){
alert('true');
}else{
alert('false');
}
}
checkSpam(str);
В консоли наблюдаю: Uncaught TypeError: undefined is not a function
Ошибка у меня здесь if(str.indexOf('viagra') >= 0 || str.indexOf('xxx') >= 0)
что сделал не правильно?
ruslan_mart
06.01.2015, 17:10
soltx, не вижу ошибки, может русская буква где-нибудь?
Скобки забыл у вызова метода toLowerCase.
"use strict";
var str = prompt('Введите значение');
str = str.toLowerCase();
function checkSpam(str){
if(str.indexOf('viagra') >= 0 || str.indexOf('xxx') >= 0){
alert('true');
}else{
alert('false');
}
}
checkSpam(str);
ruslan_mart
06.01.2015, 17:17
Safort, а ошибка у автора показывается в строке условия. :p
Ruslan_xDD, переписал по новой, + редактор (JetBrains) показывает если где то русская буква, в примере выше, запустить выдаст ошибку undefined is not a function
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
var str = prompt('Введите значение');
str = str.toLowerCase();
function checkSpam(str){
if(/viagra/.test(str) || /xxx/.test(str)){
alert('true');
}else{
alert('false');
}
}
checkSpam(str);
</script>
</body>
</html>
ruslan_mart
06.01.2015, 17:23
soltx, вообще я очень сомневаюсь, что спамеры юзают javascript, так как они в основном боты и сразу отправляют запрос на сервер. Лучше на сервере делать подобные проверки.
Safort, спс, какой не жданчик в действительности у метода не добавил скобки.
Ruslan_xDD,
а ошибка у автора показывается в строке условия
так и должно быть
Ruslan_xDD,
Что касаемо предыдущего твоего вопроса, то там в отсутствии скобок нет никакой ошибки, просто тс вызывал indexOf для функции toLowerCase
ruslan_mart
06.01.2015, 17:40
для функции toLowerCase
Это то понятно. А вообще, должна возникать ошибка, потому что такое действие не логично: str.toLowerCase, так как метод и не вызывается, и не присваевается. В каких-то языках бы это считалось за ошибку, но не помню в каких именно.
Ruslan_xDD,
А вообще, должна возникать ошибка, потому что такое действие не логично: str.toLowerCase, так как метод и не вызывается, и не присваевается.
Вообще-то, всё логично. Переменной str присваивается ссылка на str.toLowerCase. Вспомни, как ты работаешь с теми же таймерами в JS или событиями.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot