如何在 typescript 中区分字符串和RegEx字符串?

gijlo24d  于 2023-02-14  发布在  TypeScript
关注(0)|答案(1)|浏览(120)

我需要区分字符串和RegExp字符串之间的传入值。
我的第一次尝试是这样的:

myMethod(value: string | RegExp): boolean {
  let pattern: RegExp;
  if (value instanceof RegExp) {
    pattern = value;
  } else {
    pattern = new RegExp(`^${value}$`);
  }
  return this.#myString.match(pattern) !== null;
}

传入的值也可以是0|1myString\d\d\d\d^\w .*(0[1-9]|1[012])[.](19|20)\\d\\d
在我的方法中,这些都被认为是字符串而不是RegExp,我错过了什么?

2ul0zpep

2ul0zpep1#

该定义myMethod(value: string | RegExp): boolean表示value可以是字符串或RegExp类的示例。
您可以通过两种不同的方式创建RegExp的示例:
1.// /
1.新建正则表达式("模式")
请注意,"^a *"、"^a "和"^${a}"都是字符串,因此不会仅仅因为它们具有RegExp的某些特征就将其视为RegExp的示例
下面是一个示例

相关问题