我试图弄清楚文本框是否有给定的单词,无论大小写如何。例如,如何确定给定的文本框#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);
});
答案 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)
function checkAlphaCase(alpha) {
if (alpha == alpha.toLowerCase()) {
alert('LowerCase');
} else if (alpha == alpha.toUpperCase()) {
alert('UppperCase');
} else {
alert('MixedCase');
}
}
checkAlphaCase('ANIR');
&#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);
});