JavaScript/jQuery - 检查字符串是否包含关键字之一

标签 javascript jquery

如何判断字符串中是否包含选中的关键字?

例如

var keywords = 'small, big, large'
var string = 'big brown bear';

function wordInString(string, keywords){
  return new RegExp( '\\b' + keywords + '\\b', 'i').test(string);
}

以上仅适用于单个单词,我需要能够测试多个单词,以及完全匹配。

最佳答案

将字符串拆分为单词,并使用关键字数组

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);

ES5(跨浏览器)版本

function wordInString(string, keywords) {
    return string.split(/\b/).filter(function(w) {
        return keywords.indexOf(w) !== -1;
    }).length > 0;
}

返回所有单词

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);

返回第一个匹配的词或空字符串

function wordInString(string, keywords) {
	var r = "";
    string.split(/\b/).some( x => {
    	return r = keywords.includes(x) ? x : "";
    })
    return r;
}

var keywords = ['small', 'big', 'large'];
var result1  = wordInString('big brown bear large', keywords); //  "big"
var result2  = wordInString('great brown bear', keywords);     //  ""
var result3  = wordInString('Big brown bear', keywords);       //  ""

console.log(result1);
console.log(result2);
console.log(result3);

关于JavaScript/jQuery - 检查字符串是否包含关键字之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068267/

相关文章:

javascript - 如何使用 JavaScript 使只读文本字段可编辑?

ASP.NET 菜单项上的 JQuery 点击方法?

javascript - 动态分配数据属性给svg对象

javascript - Chart.js - 创建自定义图表类型

javascript - 用替代内容(HTML + CSS + JS)替换整个网页

javascript - 设置cookie后不刷新

jquery 显示更多/更少有添加 html 标签的问题

javascript - 为什么不能在 ngFor 中使用 var 而不是 let

javascript点击并隐藏问题firefox

javascript - jQuery UI Droppable,不通过特定 DIV 传播事件