为什么regex在javascript无效?/(?我)-StringA $ | -StringB /美元



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

声明如下:

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

尝试运行应用程序会产生如下结果:

Module parse failed: Invalid regular expression: /(?i)-StringA$|-StringB$/: Invalid group (199:21)
File was processed with these loaders:
* ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js
* ./node_modules/@ngtools/webpack/src/ivy/index.js
You may need an additional loader to handle the result of these loaders.

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

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

相关内容

  • 没有找到相关文章