我不想让用户插入我使用的特殊字符
this.schedulerForm = this.fb.group({
name: [this._schedule.Name, [Validators.required, Validators.pattern(/[!^\w\s]$/)] ]]
});
它的工作原理是,例如,用户键入@@, 但是问题是,如果用户键入例如-@@ dewq,则它有效!模式必须如何也必须使其无效?
谢谢!
答案 0 :(得分:0)
该模式必须以^
开头以表示单词开头,并且必须以+
开头以允许多个字符:
Validators.pattern(/^[\w\s]+$/)
答案 1 :(得分:0)
您的正则表达式[!^\w\s]$
与[!^\w\s]
行末尾的字符类$
中的1个字符匹配,因此它与@@dewq
中的最后一个字符匹配,但不匹配@@
如果只想匹配空格和单词字符,则可以在字符类中指定空格和单词字符,并使用量词使用+
重复一次或多次。
说明
^
断言行的开头[\w\s]+
一次或多次匹配单词字符或空格字符$
声明行的结尾