首頁  >  問答  >  主體

為什麼在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粉314915922405 天前601

全部回覆(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
  • 取消回覆