修改此正则表达式,使其只接受在此条件下给定的字符

时间:2019-10-01 18:32:34

标签: regex angular angular7

我的Angular 7应用程序中有一个自定义验证器。我需要它仅接受某些字符,但是,它仍在接受我的条件中未包括的字符。

我的自定义验证器:

  static addressFormat(control: AbstractControl): { [key: string]: boolean } {
    const isValidAddress = (/^([a-zA-Z0-9,.#-@%&'])([a-zA-Z0-9,.#-@%&'\s/]?)+$/).test(control.value);
    return isValidAddress ? null : { addressFormat: true };
  }

第一个字符不能为空白,可以正常工作。 之后,它应该接受的唯一字符如下:

Numbers 0 to 9

Uppercase letters A-Z (you will see the expression accepts lowercase, but ive taken care of that with making each form control value uppercase inside the input tag)

period .

apostrophe '

hyphen -

comma ,

hashtag #

at sign @

percentage %

ampersand &

slash /

spaces 

问题是,我可以输入*)(+:; => <?这样的字符,它将认为这些字符是有效的。如何修改此验证器以确保排除了那些字符?

1 个答案:

答案 0 :(得分:0)

使用此字符类。您允许的范围是definition m_inv :: "('a, 'b) monoid_scheme => 'a => 'a" ("invı _" [81] 80) where "inv⇘G⇙ x = (THE y. y ∈ carrier G ∧ x ⊗⇘G⇙ y = ?⇘G⇙ ∧ y ⊗⇘G⇙ x = ?⇘G⇙)" #,而不仅仅是这三个字符。这就是为什么不好的人会溜走的原因:

@