Вход

Просмотр полной версии : Задачка (Проверка на спам)


soltx
06.01.2015, 17:01
Привет, не могу отловить ошибку :)
"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, не вижу ошибки, может русская буква где-нибудь?

Safort
06.01.2015, 17:15
Скобки забыл у вызова метода 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

soltx
06.01.2015, 17:20
Ruslan_xDD, переписал по новой, + редактор (JetBrains) показывает если где то русская буква, в примере выше, запустить выдаст ошибку undefined is not a function

krutoy
06.01.2015, 17:22
<!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, так как они в основном боты и сразу отправляют запрос на сервер. Лучше на сервере делать подобные проверки.

soltx
06.01.2015, 17:23
Safort, спс, какой не жданчик в действительности у метода не добавил скобки.

krutoy
06.01.2015, 17:23
Ruslan_xDD,
а ошибка у автора показывается в строке условия
так и должно быть

krutoy
06.01.2015, 17:37
Ruslan_xDD,
Что касаемо предыдущего твоего вопроса, то там в отсутствии скобок нет никакой ошибки, просто тс вызывал indexOf для функции toLowerCase

ruslan_mart
06.01.2015, 17:40
для функции toLowerCase

Это то понятно. А вообще, должна возникать ошибка, потому что такое действие не логично: str.toLowerCase, так как метод и не вызывается, и не присваевается. В каких-то языках бы это считалось за ошибку, но не помню в каких именно.

Safort
06.01.2015, 17:47
Ruslan_xDD,
А вообще, должна возникать ошибка, потому что такое действие не логично: str.toLowerCase, так как метод и не вызывается, и не присваевается.
Вообще-то, всё логично. Переменной str присваивается ссылка на str.toLowerCase. Вспомни, как ты работаешь с теми же таймерами в JS или событиями.