我正在尝试使用 Angular 6 反应式表单构建注册表单。
ngOnInit() {
this.registerForm = this.formBuilder.group({
firstName: ['', [Validators.required],
lastName: ['', [Validators.required]],
email: ['', [Validators.required, Validators.email]],
password: ['', [Validators.required, Validators.pattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&].{8,}$')]],
confirmPassword: ['', [Validators.required, Validators.pattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&].{8,}$')]]
});
}
如何进行验证,以便允许:
- 数字
- 首都
- 小写字母
- 任何特殊字符
- 最少 8 个字符
我使用的这个正则表达式工作正常,但我不能使用任何其他特殊字符,例如我尝试过Demoo123#
但没有工作。不过Demoo123@
效果很好。我认为特殊字符部分的正则表达式存在问题。我是否必须手动提及所有允许的特殊字符?或者有什么捷径吗?我在某处读到正则表达式不喜欢主题标签#
……这是真的吗?
另一个问题是如何进行确认验证,以便确认密码值必须与密码字段值相同?