我目前正在使用Javascript,现在我正在寻找一种检查变量是否包含至少一个字符串的方法。我看过以前的问题,但是,都没有包含我正在寻找的东西。我在这里有一个功能:
function findCertainWords()
{
var t = {Some text value};
if (t in {'one':'', 'two':''})
return alert("At least one string is found. Change them."), 0;
return 1
}
变量a是用户的书面文字(例如,评论或帖子)。
我想检查用户是否在其中写了某个单词并返回警告消息以删除/编辑该单词。虽然我的书面函数有效,但只有当用户在我的变量("Three" != "three"
)中写入时,才能正确写入该函数。我想改进我的功能,所以它也会发现不区分大小写("Three" == "three"
)和部分单词(比如" thr"来自" three")。我尝试使用*
这样的表达式,但它没有用。
如果每个表达式都可以写在一个函数中,那将是最好的。否则,我可能需要帮助组合两个函数。
答案 0 :(得分:1)
使用indexOf
测试字符串是否包含其他字符串。在比较之前,使用.toLowerCase
将其转换为一个案例。
function findCertainWords(t) {
var words = ['one', 'two'];
for (var i = 0; i < words.length; i++) {
if (t.toLowerCase().indexOf(words[i]) != -1) {
alert("At least one string was found. Change them.");
return false;
}
}
return true;
}
另一种方法是将数组转换为正则表达式:
var regexp = new RegExp(words.join('|'));
if (regexp.test(t)) {
alert("At least one string was found. Change them.");
return false;
} else {
return true;
}
答案 1 :(得分:0)
您可以将Array.some
与Object.keys
if(Object.keys(obj).some(function(k){
return ~a.indexOf(obj[k]);
})){
// do something
}