首页 > 解决方案 > 在角度 2 中使用正则表达式时出错,模块解析失败:严格模式下的八进制文字

问题描述

嗨,我的 environment.ts 文件中有一个正则表达式

export const environment = {

passwordPolicy: "^(?!.*(.)\1\1)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}.*$"

};

但是,当我进行 ng 测试时,我收到如下错误

ERROR in ./src/environments/environment.ts
Module parse failed: Octal literal in strict mode (74:30)
You may need an appropriate loader to handle this file type.
|     passwordPolicy: "^(?!.*(.)\1\1)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}.*$"
| };
| 
 @ ./src/app/shared/services/config.service.ts 22:20-64
 @ ./src/app/shared/services/users.service.ts
 @ ./src/app/shared/services/index.ts
 @ ./src/app/users/users.component.spec.ts
 @ ./src \.spec\.ts$
 @ ./src/test.ts

请帮帮我谢谢

标签: angulartypescript

解决方案


你必须加倍你的反斜杠。

"^(?!.*(.)\\1\\1)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}.*$"

否则,它假定您正在尝试从字符串中转义 1。


推荐阅读