我在 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}$
首先是它被改变的原因以及第二个解决方案和/或修复此类问题的原因是什么?
答案 0 :(得分:1)
这是因为反斜杠。将您的regExpHTML更改为以下
^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[#$@!%&*?])[A-Za-z\\d#$@!%&*?]{8,30}$