被禁止的话,但如果有更多的话

时间:2014-09-22 12:36:05

标签: javascript jquery input words restrict

我找到解决方案,如果在输入字段中输入了某些单词,则禁用它们。 问题是,只有当有人将它们用作单个单词时才需要禁止它们,而不是在输入更多单词时禁止它们。

示例:

如果输入%bannedword%,则必须显示ERROR,但如果有人写

" %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>');

}

});

这里是小提琴: http://jsfiddle.net/p16954wc/

1 个答案:

答案 0 :(得分:-1)

我已经更改了bannedwords数组,它将用于regExp。 您还必须包含场景来处理witespaces。所以我在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阵列。