2014-09-22 9 views
-2

Я нахожу решение, чтобы запретить некоторые слова, если они введены в поле ввода. Проблема в том, что мне нужно запретить их только тогда, когда кто-то использует их как одно слово, а не когда вводится больше слов.Заблокированные слова, но не если с большим количеством слов

Пример:

Если% bannedword% был введен, то ошибка должна появиться, но если кто-нибудь написать

"% bannedword% wordnotbanned"

все должны быть помечены как правильно заливку ввода, без любой ОШИБКИ.

Что я должен делать, все работает нормально?

здесь является JQuery

$('#submit').click(function() { 

var bannedWords = ["black", "white"], 
regex = new RegExp('\\b' + bannedWords.join("\\b|\\b") + '\\b', 'i'); 
var zalvalid = !regex.test($('#zalmie').val().toLowerCase()); 

if(!zalvalid) { 

    $('#zwynik').addClass("hover").html('<strong>ERROR:</strong>'); 
    $('#zalmie').focus(); 
    return false; 

} else { 

    $('#zwynik').addClass("hover").html('<strong>NICE ONE!</strong>'); 

} 

}); 

и вот Fiddle:http://jsfiddle.net/p16954wc/

+0

«Что я должен делать, чтобы все было хорошо?» - «Ну, для начала, вы могли бы определить, каким образом он в настоящее время не работает *. – David

+0

Почему вы, люди, преувеличиваете этот вопрос? Если вы не знаете, как помочь просто не беспокоить Что с вами не так. @@ Дэвид, у меня есть вопрос, поэтому я спрашиваю. Что не так с этим вопросом? – X9DESIGN

+0

Когда вы ввели запрещенное слово другими словами, появляется сообщение ERROR. Я хочу, чтобы ERROR не появлялся в этом случае ... ОШИБКА должна отображаться только при вводе одного запрещенного слова ||| черный -> ОШИБКА; это черный -> ПРАВИЛЬНО; белый черный -> ОШИБКА – X9DESIGN

ответ

-1

Я изменил массив bannedwords, который будет использоваться для RegExp. Вы также должны включить сценарий обработки адресов. Поэтому я добавил в массив bannedWords.

$('#submit').click(function() { 

    var bannedWords = ["black ", "white ", "black", "white"], 
    regex = new RegExp('\\b' + bannedWords.join("\\b|\\b") + '\\b', 'i'); 
    var zalvalid = !regex.test($('#zalmie').val().toLowerCase()); 

if(!zalvalid) { 
    $('#zwynik').addClass("hover").html('<strong>ERROR:</strong>'); 
    $('#zalmie').focus(); 
    return false; 
    } else { 
    $('#zwynik').addClass("hover").html('<strong>NICE ONE!</strong>'); 
    } 

}); 

Это a link to fiddle!

Раньше вы не смогли обработать сценарий где: Пример: черный что-то. Итак, у вас должен быть regExp, который должен иметь возможность проверять «черный» и «белый».

Если ваш список запрещенных слов длинный, то просто добавьте дополнительное пространство после каждого слова.

Вы также можете автоматизировать создание массива banWord.

+1

'Обновленный код 'не является ответом, если люди должны использовать diff чтобы выяснить, что изменилось. Объясните, что было изменено и почему – charlietfl

+0

@charlietfl: да. Конечно, Чарли, у тебя. Надеюсь, теперь я понятен :) – maddy

+0

@ X9DESIGN: У тебя есть брат. ?? – maddy