【问题标题】:Angular 12 + material: Regular expression too largeAngular 12 +材料:正则表达式太大
【发布时间】:2022-01-22 05:54:02
【问题描述】:

我已将我们的应用程序更新到 Angular v12。 在 Chrome 中,我收到此错误(成功编译后):

未捕获的 SyntaxError:无效的正则表达式: /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d+)?(? :Z|(?:(?:+|-)\d{2}:\d{2}))?)?$/: 正则表达式太大

这个正则表达式可以在 node_modules/@angular/material/bundles/material-core.umd.js 第 854 行找到:

var ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;

在 Angular 11 中,我们没有收到这个错误,所以我想知道为什么它现在会出现,以及如何解决这个问题。我已经尝试将 @angular/material 降级到 v11,但它会引发完全相同的错误。

package.json 的依赖:

  "dependencies": {
    "@angular/animations": "~12.2.14",
    "@angular/cdk": "~11.2.0",
    "@angular/common": "~12.2.14",
    "@angular/compiler": "~12.2.14",
    "@angular/core": "~12.2.14",
    "@angular/forms": "~12.2.14",
    "@angular/localize": "^11.2.14",
    "@angular/material": "11.1.0",
    "@angular/platform-browser": "~12.2.14",
    "@angular/platform-browser-dynamic": "~12.2.14",
    "@angular/router": "~12.2.14",
    "core-js": "^2.6.2",
    "cypress": "^8.2.0",
    "cypress-file-upload": "^5.0.8",
    "cypress-movie": "^3.0.6",
    "cypress-promise": "^1.1.0",
    "cypress-real-events": "^1.4.0",
    "cypress-wait-until": "^1.7.1",
    "hammerjs": "^2.0.8",
    "ngx-device-detector": "^1.4.5",
    "rxjs": "6.6.3",
    "tslib": "~2.3.1",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~12.2.14",
    "@angular-devkit/build-ng-packagr": "~0.1002.0",
    "@angular/cli": "~12.2.14",
    "@angular/compiler-cli": "~12.2.14",
    "@angular/language-service": "^12.2.14",
    "@compodoc/compodoc": "^1.1.11",
    "@types/jasmine": "~3.6.9",
    "@types/jasminewd2": "2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "cross-env": "^7.0.3",
    "jasmine-core": "2.99.1",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.9",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-coverage-istanbul-reporter": "~2.1.1",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "~1.5.0",
    "karma-junit-reporter": "^2.0.1",
    "karma-sonarqube-unit-reporter": "0.0.23",
    "ng-packagr": "^12.2.6",
    "protractor": "~7.0.0",
    "release-it": "^14.2.2",
    "rimraf": "^3.0.2",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "~4.3.5"
  },

【问题讨论】:

    标签: angular angular-material ivy


    【解决方案1】:

    这有点奇怪。可能和你的项目无关。

    如果您使用 Chrome 95,它可能与此错误有关 https://bugs.chromium.org/p/chromium/issues/detail?id=1264014

    您可以做的是更新您的浏览器或尝试使用其他浏览器(例如 firefox),如果它可以正常工作,它肯定与 Chrome 相关

    【讨论】:

    • Chrome 是最新版本 96.0.4664.110。 Edge:同样的错误 Firefox:错误:必须从注入上下文调用注入()
    猜你喜欢
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多