String.prototype.includes()の検索文字列を複数指定できる関数を作る

記事作成日時: 2021/02/05 00:00

最終更新日時: 2021/02/15 00:54


String.prototype.includes()とは

  • String.prototype.includes()は特定の文字列がある文字列の中に存在するかをチェックする

  • 特定の文字列は1つしか指定できない
  • "Hello, World".includes(["Hello", "World"])のように文字列を複数指定できるようにしたい

関数を作る

複数指定できる関数を作る。言語はTypeScript。
or検索かand検索も選べるようにしている。

const multipleIncludes = (
  text: string,
  pattern: string | string[],
  conditions: "and" | "or" = "or"
) => {
  if (typeof pattern === "string") {
    return text.includes(pattern);
  }

  if (conditions === "and") {
    for (const word of pattern) {
      if (!text.includes(word)) {
        return false;
      }
    }

    return true;
  }

  for (const word of pattern) {
    if (text.includes(word)) {
      return true;
    }
  }
  return false;
};

export default multipleIncludes;