如何在environment.prod.ts中将模式保存为ENV变量?

时间:2017-12-18 08:47:40

标签: json angular environment-variables

我在 environment.prod.ts 的ENV变量中保存了一个模式,例如:

export const environment = { production: true, regExpTs : /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/i, regExpHTML : '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$', };

这个想法的背景是能够在需要时动态地从env更改模式,并隐藏它直接嵌入HTML。

第一个变量: regExpTs 正在 *.ts 文件中使用,并且工作正常。我面临的问题是关于变量: regExpHTML

我在 *.ts 文件中阅读了以下内容: let PASS_REGEXP_HTML = environment.regExpHTML; 然后我在特定输入字段的 *.component.html 中将其作为插值传递。

E.g。的 <input type="password" patter="{{PASS_REGEXP_HTML}}" ../> 插值也工作正常,但问题是模式以某种方式被改变,而不再是ENV中保存的模式。

它改变自:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$

为:

^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[#$@!%&*?])[A-Za-zd#$@!%&*?]{8,30}$

首先是它被改变的原因以及第二个解决方案和/或修复此类问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

这是因为反斜杠。将您的regExpHTML更改为以下

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[#$@!%&*?])[A-Za-z\\d#$@!%&*?]{8,30}$