如何测试字符串是否包含所选关键字?
例如
var keywords = 'small, big, large'
var string = 'big brown bear';
function wordInString(string, keywords){
return new RegExp( '\\b' + keywords + '\\b', 'i').test(string);
}
Run Code Online (Sandbox Code Playgroud)
以上仅适用于单个单词,我需要能够测试多个单词,并且完全匹配。
将字符串拆分为单词,然后使用关键字数组
function wordInString(string, keywords) {
return string.split(/\b/).some(Array.prototype.includes.bind(keywords));
}
var keywords = ['small', 'big', 'large'];
var result1 = wordInString('big brown bear', keywords); // true
var result2 = wordInString('great brown bear', keywords); // false
var result3 = wordInString('Big brown bear', keywords); // false
console.log(result1, result2, result3);Run Code Online (Sandbox Code Playgroud)
ES5(跨浏览器)版本
function wordInString(string, keywords) {
return string.split(/\b/).filter(function(w) {
return keywords.indexOf(w) !== -1;
}).length > 0;
}
Run Code Online (Sandbox Code Playgroud)
返回所有的话
function wordInString(string, keywords) {
return string.split(/\b/).filter(function(w) {
return keywords.indexOf(w) !== -1;
}).length > 0;
}
Run Code Online (Sandbox Code Playgroud)
返回第一个匹配的单词或空字符串
function wordInString(string, keywords) {
return keywords.filter(function(x) { return this.includes(x) }, string.split(/\b/));
}
var keywords = ['small', 'big', 'large'];
var result1 = wordInString('big brown bear large', keywords); // ["big", "large"]
var result2 = wordInString('great brown bear', keywords); // []
var result3 = wordInString('Big brown bear', keywords); // []
console.log(result1);
console.log(result2);
console.log(result3);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |