代码之家  ›  专栏  ›  技术社区  ›  k.vincent

如何在环境中将模式另存为ENV变量。产品ts?

  •  0
  • k.vincent  · 技术社区  · 8 年前

    我将模式保存在环境变量中 environment.prod.ts 例如。:

    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 在特定输入字段中。

    例如。 <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 回复  |  直到 8 年前
        1
  •  1
  •   Bunyamin Coskuner    8 年前

    这是因为反斜杠。将regExpHTML更改为以下内容

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