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

JavaScript是否有类似C# IndexOfAny的字符检测函数?

JavaScript 实现类似 C# IndexOfAny 的功能

JavaScript 本身没有内置的 IndexOfAny() 函数,但可以通过几种简单方式实现需求:

方法一:使用正则表达式

把字符数组转换成正则表达式,匹配目标字符串中是否存在任意指定字符。注意对 [、] 这类正则特殊字符进行转义,ES2021+ 可直接用 RegExp.escape() 处理。

const chars = ['[', ']', '{', '}'];
const str = "BlahBlah}";

// 转义特殊字符并构建正则
const escapedChars = chars.map(c => RegExp.escape(c)).join('');
const regex = new RegExp(`[${escapedChars}]`);

console.log(regex.test(str)); // 输出 true

方法二:使用数组的 some() 方法

遍历字符数组,用字符串的 includes() 逐个检查,只要有一个匹配就返回 true,逻辑直观易懂。

const chars = ['[', ']', '{', '}'];
const str = "BlahBlah}";

const hasMatch = chars.some(char => str.includes(char));
console.log(hasMatch); // 输出 true

方法三:自定义封装函数

如果需要频繁使用,可以封装成类似 C# IndexOfAny 的函数,返回匹配字符的索引(无匹配返回 -1),按需转换成布尔值:

function indexOfAny(str, chars) {
  for (let i = 0; i < str.length; i++) {
    if (chars.includes(str[i])) {
      return i; // 返回第一个匹配字符的索引
    }
  }
  return -1;
}

// 使用示例
const chars = ['[', ']', '{', '}'];
const str = "BlahBlah}";
console.log(indexOfAny(str, chars) !== -1); // 输出 true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:03:14