特殊字符验证反应形式

时间:2018-07-11 14:50:24

标签: javascript regex angular

我不想让用户插入我使用的特殊字符

 this.schedulerForm = this.fb.group({

        name: [this._schedule.Name, [Validators.required, Validators.pattern(/[!^\w\s]$/)] ]]
    });

它的工作原理是,例如,用户键入@@, 但是问题是,如果用户键入例如-@@ dewq,则它有效!模式必须如何也必须使其无效?

谢谢!

2 个答案:

答案 0 :(得分:0)

该模式必须以^开头以表示单词开头,并且必须以+开头以允许多个字符:

Validators.pattern(/^[\w\s]+$/)

答案 1 :(得分:0)

您的正则表达式[!^\w\s]$[!^\w\s]行末尾的字符类$中的1个字符匹配,因此它与@@dewq中的最后一个字符匹配,但不匹配@@

中的最后一个字符

如果只想匹配空格和单词字符,则可以在字符类中指定空格和单词字符,并使用量词使用+重复一次或多次。

^[\w\s]+$

说明

  • ^断言行的开头
  • [\w\s]+一次或多次匹配单词字符或空格字符
  • $声明行的结尾