无论大小写,检查单词是否在文本框中

时间:2014-11-12 05:53:09

标签: javascript jquery

我试图弄清楚文本框是否有给定的单词,无论大小写如何。例如,如何确定给定的文本框#TextBox是否包含单词"hello"

var specialwords = ['hello','Hello','HELLO']; //special words here

$('#TextBox').keydown(function() {
    var text = $(this).val();
    text = text.split(" ");
    var newtext = "";
    for(var i = 0; i < text.length; i++){
        // code to check words
    }
    $("#check").html(newtext);
});

4 个答案:

答案 0 :(得分:2)

检查文本框是否具有给定单词的最简单方法是将文本框转换为小写,然后按空格分割并找到indexOf单词。

var word = "hello".toLowerCase();    // make sure this word is lowercase

$("#TextBox").keydown(function () {
    var text = $(this).val().toLowerCase().split(" ");
    if (text.indexOf(word) > -1) {
        // do something
    } else {
        // word is not in the text box
    }
})

如果要检查单词数组specialWords,请将for块包装在for循环中。这将是O(n²)复杂性,但只要您的输入不是非常长 1 ,那就应该没问题。

1 我们长时间谈论成千上万的话语。

答案 1 :(得分:1)

&#13;
&#13;
function checkAlphaCase(alpha) {
  if (alpha == alpha.toLowerCase()) {
    alert('LowerCase');
  } else if (alpha == alpha.toUpperCase()) {
    alert('UppperCase');
  } else {
    alert('MixedCase');

  }

}


checkAlphaCase('ANIR');
&#13;
&#13;
&#13;

答案 2 :(得分:1)

尝试这个

$(document).ready(function(){

    
  
  var specialwords = ['hello','Hello','HELLO'];//special words here

            $('#TextBox').keydown(function() {
             //alert(this);
                var text = $(this).val().trim();
              console.log(text);
              //  text = text.trim().split(" ");
                var newtext = "";
                var up=0,low=0;
                for(var i=0;i<text.length;i++){
                  if(text[i]==" ")
                    continue;
                  else{
                  if(text[i].trim()==text[i].trim().toLowerCase())
                    low++;
                   if(text[i].trim()==text[i].trim().toUpperCase())
                    up++;
                    }
                }
              if(up>0 && low>0)
                newtext="mix case";
              else if(up>0)
                newtext="Upper case"; 
              else if(low>0)
                newtext="Lower case"

                $("#check").html(newtext);
            });
  
  });       
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="TextBox">
<div id="check"></div>

答案 3 :(得分:1)

您可以使用以下所有单词制作不区分大小写的正则表达式:

RegExp("\\b(?:" + specialwords.join("|") + ")\\b", "i")

然后你可以用它来对付每个单词。一旦你识别出来,我不确定你在用这些词语做什么......我会假设我的代码片段是你从文本中忽略它们。

var specialwords = ['hello','world','pizza']; //special words here
var swr = RegExp("\\b(?:" + specialwords.join("|") + ")\\b", "i")

$('#TextBox').keydown(function() {
    var text = $(this).val();
    text = text.split(" ");
    var newtext = [];
    for(var i=0; i<text.length; i++){
        if (!text.match(swr)) {
            newtext.push(text)
        }
    }
    $("#check").html(newtext.join(" "));
});

在正则表达式中使用\b作为单词分隔符,您还可以检查整个文本,而无需根据需要分解单词。

var specialwords = ['hello','world','pizza']; //special words here
var swr = RegExp("\\b(?:" + specialwords.join("|") + ")\\b", "i")

$('#TextBox').keydown(function() {
    var text = $(this).val();
    var newtext = text.replace(swr, "");
    $("#check").html(newtext);
});