无论大小写,请检查文本框中是否有单词
Check whether a word is in a text box regardless of case
我正试图弄清楚一个文本框是否有一个给定的单词,而不考虑大小写。例如,如何确定给定的文本框#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);
});
无论大小写,检查文本框是否有给定单词的最简单方法是将文本框转换为小写,然后用空格分隔并找到单词的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
,请将If块包装在for循环中。这将是O(n²)
的复杂性,但这应该没问题,只要您的输入不是很长1。
1我们谈论的是成千上万的单词,它们都很重要
function checkAlphaCase(alpha) {
if (alpha == alpha.toLowerCase()) {
alert('LowerCase');
} else if (alpha == alpha.toUpperCase()) {
alert('UppperCase');
} else {
alert('MixedCase');
}
}
checkAlphaCase('ANIR');
尝试此
$(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>
您可以制作一个不区分大小写的regex,其中包含以下所有单词:
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(" "));
});
在regexp中使用'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);
});
相关文章:
- 如何让程序检查所选单词中是否有按键
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 检查字符串是否等于一个单词和一个数字
- Regex:使用javascript测试最后一个单词后的url中是否存在最后一个斜杠
- 是否可以通过Javascript迭代stdin中的每个单词
- Jquery/Javascript检查我的单词是否有效
- Javascript Regex检查字符串是否包含不属于的单词
- Jquery $this属性选择器是否包含单词
- 检查/查找 url 中是否有数组的任何单词
- 正则表达式,用于测试字符串是否包含超过 X 个单词
- 检查单词是否具有相同的字母 - 错过一项测试
- 如何检查我的字符串是否包含某些单词
- 单词边界是否适用于符号字符
- 使用javascript来检测单词是否不可用
- 如何测试字符串是否按顺序包含多个定义的单词
- 检查一个单词是否与数组中的另一个单词匹配
- JavaScript正则表达式测试字符串是否包含特定单词(带变量)
- 无论大小写,请检查文本框中是否有单词
- 如何检查给定单词是否包含在字符串中
- 通过JavaScript中的dictionary对象检查单词的有效性-是否有更好的方法来引用/构建词典