javascript - 如何过滤字符串中的确切单词?
问题描述
我的主要目标是检查字符串是否包含单词数组。如果字符串在单词前面包含 $ ,我不希望它检查字符串中的单词数组并希望直接使用 console.log 。
我遇到的问题是它没有检查“确切的单词”。例如,如果您输入 E,则应该显示文本,因为没有仅包含“E”的单词,但是它没有显示。
例如:
const res = `EU, U.S. REACH DEAL TO RESOLVE BOEING-AIRBUS TRADE DISPUTE
$BA`;
const filters = ["E", "OPEC", "Repo"];
if (!filters.some(element => res.includes(element))) {
console.log(res);
}
另一种方法,我在想也许使用 split 方法并检查每个数组项是否是过滤词。
解决方案
使用带有表达式主体的 ES6 Array.filter() 和箭头函数:
var words = ['get', 'help', 'set', 'moon', 'class', 'code', 'Get', ];
var letter = 'e';
var word = "get";
const output = words.filter(x=>x.includes(letter));
console.log(output);
const output2 = words.filter(x => x.toLowerCase().includes(word));
console.log(output2);
推荐阅读
- qt - 调用 clear() 后 QXmlStreamReader 未重置
- java - 可靠地获取来自 Kafka 主题的最后一条(已经产生的)消息
- scala - 基于谓词将 fs2 流分组为子流
- python - 电视马拉松事件和单独使用它们的问题
- android - 使用 Dao db 创建视图模型导致的错误
- vuejs2 - 如何用 jest 模拟 vue 可组合函数
- javascript - 如何在盖茨比中使用 jQuery?
- fluent-bit - 流利的位,我如何在路径中使用 strftime
- java - Java 8 Stream API min() 和 max() 与收集器 minBy() 和 maxBy()
- c# - 我的正则表达式适用于我的电脑,但不适用于另一台电脑