搜索

首页  >  问答  >  正文

为什么在JavaScript中这个正则表达式无法生效?/(?i)-StringA$|-StringB$/

在生成器中构建了这个正则表达式,一切都按预期工作,在我的应用程序中尝试清理一些字符串,应用程序说它无效。

声明如下:

const reg = /(?i)-TeamMember$|-TeamLead$/;
testString = testString.replace(reg, "");

尝试运行应用程序会出现以下错误:

模块解析失败:无效的正则表达式:/(?i)-StringA$|-StringB$/: 无效的分组(199:21)
文件已使用以下加载器进行处理:
 * ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js
 * ./node_modules/@ngtools/webpack/src/ivy/index.js
您可能需要额外的加载器来处理这些加载器的结果。

在生成器中尝试了这个,一切都按预期工作,目标是从字符串中删除后缀,如果它与提供的任一字符串匹配并忽略大小写。

P粉314915922P粉314915922446 天前644

全部回复(1)我来回复

  • P粉562845941

    P粉5628459412023-09-11 09:02:52

    JavaScript没有内置的不区分大小写的行内标志。相反,您应该使用不区分大小写的标志/i

    const reg = /-TeamMember$|-TeamLead$/i;
    testString = testString.replace(reg, "");

    您可以在这里阅读更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase

    回复
    0
  • 取消回复