我有一系列这样的关键字:
var keywords = ['red', 'blue', 'green'];
还有一个像这样的对象:
var person = {
name: 'John',
quote: 'I love the color blue'
};
我如何确定 person 对象中的任何值是否包含任何关键字?
Update
function isSubstring(w){
for(var k in person) if(person[k].indexOf(w)!=-1) return true;
return false
}
keywords.some(isSubstring) // true if a value contains a keyword, else false
这区分大小写并且不考虑字边界。
第二个答案
这是一种情况——不敏感的, and does尊重单词边界。
var regex = new RegExp('\\b('+keywords.join('|')+')\\b','i');
function anyValueMatches( o, r ) {
for( var k in o ) if( r.test(o[k]) ) return true;
return false;
}
anyValueMatches(person,regex) // true if a value contains a keyword, else false
If any keywords
包含在正则表达式中具有特殊含义的字符,它们必须被转义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)