You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在类似includes的函数可传入多个搜索字符串?

实现支持多关键词的字符串包含检查函数

原生的String.prototype.includes只接受单个搜索值和可选的起始位置参数,无法直接传入多个关键词。你可以通过以下两种方式实现需求:

1. 独立工具函数(推荐,避免污染原型)

如果不想修改原生String的原型,直接写一个独立函数:

// 检查字符串是否包含任意一个关键词
function includesAny(str, ...searchValues) {
  return searchValues.some(searchVal => str.includes(searchVal));
}

// 检查字符串是否包含所有关键词
function includesAll(str, ...searchValues) {
  return searchValues.every(searchVal => str.includes(searchVal));
}

用法示例

const targetStr = "前端开发常用JavaScript框架";

// 检查是否包含任意关键词
console.log(includesAny(targetStr, "JavaScript", "Vue")); // true
console.log(includesAny(targetStr, "Python", "Java")); // false

// 检查是否包含所有关键词
console.log(includesAll(targetStr, "前端", "JavaScript")); // true
console.log(includesAll(targetStr, "前端", "Vue")); // false

2. 扩展String原型(直接实现类似原生方法的调用方式)

如果你希望像原生方法一样直接在字符串上调用,可以扩展String的原型:

// 扩展includesAny方法:匹配任意关键词
if (!String.prototype.includesAny) {
  String.prototype.includesAny = function(...searchValues) {
    return searchValues.some(searchVal => this.includes(searchVal));
  };
}

// 扩展includesAll方法:匹配所有关键词
if (!String.prototype.includesAll) {
  String.prototype.includesAll = function(...searchValues) {
    return searchValues.every(searchVal => this.includes(searchVal));
  };
}

用法示例

const targetStr = "前端开发常用JavaScript框架";

console.log(targetStr.includesAny("JavaScript", "Vue")); // true
console.log(targetStr.includesAll("前端", "JavaScript")); // true

注意事项

  • 扩展原生原型时最好先检查方法是否已存在,避免覆盖已有实现
  • 剩余参数...searchValues会自动收集所有传入的关键词,支持任意数量的搜索值

内容的提问来源于stack exchange,提问作者Marius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:36:45