【问题标题】:jQuery - Check if input field contains one of the wordsjQuery - 检查输入字段是否包含单词之一
【发布时间】:2017-09-09 15:41:52
【问题描述】:

我想在点击时检查输入字段#plz-input 是否包含以下两个词之一:“red”或“green”。

我试过.contains(),但它只适用于第一个单词。

$('#submit').click(function() {
    if( $("#plz-input").contains('red green')) {
        alert("Wrong Value ...");
    } else {
        alert("Right Value!");
    }
    return false;
});

【问题讨论】:

    标签: jquery contains


    【解决方案1】:

    考虑一个正则表达式

    您可以通过RegExp.test() 函数使用简单的正则表达式轻松完成此操作。只需用管道分隔您的个人术语,如下所示:

    var colors = new RegExp('red|green|purple|...');
    

    然后只需调用test() 函数,它将指示是否在您的字符串中找到任何这些术语,如下所示:

    // Define an expression of words to check for
    var colors = new RegExp('red|green');
    // Check if any of the words is contained within your element
    if(colors.test($('#plz-input').val()){
       alert('Wrong Value ...');
    } else {
       alert('Right Value!');
    }
    

    示例

    <input id='colors' onkeyup='checkForColors(this);' /> <span id='result'></span>
    <script>
        var result = document.querySelector('#result');
        function checkForColors(element){
            var colors = new RegExp('red|green');
            result.innerText = colors.test(element.value) ? 'Incorrect!' : 'Correct!';
        }
    </script>

    【讨论】:

    • 你确定吗?它返回“不正确!”如果在元素中输入了红色或绿色,否则为“正确!”。我将它从使用onkeydown 编辑为onkeyup,所以这可能是您之前注意到的。
    • 你是对的。在我刷新之前,它发出了嘘声。恢复我的投票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2016-07-06
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多