我有一个用Angular5用HTML制作的表单。 如果没有遵循验证器,我正在使用“表单验证”和“表单控件”给出错误消息。
像这样:
this.password = new FormControl('', [Validators.required, Validators.minLength(8),Validators.pattern("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,16}$"), Validators.maxLength(16)]);
如果此验证器不正确,那么我向用户显示一条错误消息,指示我们需要使用此正则表达式规则的密码。
现在,我想向用户显示此消息。例如:
用户在输入密码时输入以下字符串:'A123'
我需要向他展示,该密码仍然需要一个小写字母和一个符号。如果他写了丢失的参数,那么消息将消失。
结论:我需要向用户展示他在输入中引入的字符串缺少哪些规则。我不希望在同一封邮件中出现任何问题,而要单独发送。
答案 0 :(得分:1)
尝试通过它运行多个正则表达式模式,并使用IsMatch
进行验证。
如果.*?[0-9].*?
==否“请输入数字字符”
如果.*?[A-Z].*?
==否“请输入大写字母”(我认为这不适用于带有重音符号的字符)
如果.*?[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?].*?
==否“请输入特殊字符”
如果.{3,16}
==否“请输入3到16个字符的密码。
我认为没有一种方法可以确定所有缺失的方法,它只会知道缺失的东西。