【发布时间】:2021-09-07 15:07:14
【问题描述】:
我正在尝试以大写、小写的角度设置密码强度 我得到的控制台中的大小写、数字和特殊字符 错误为。
NullInjectorError:没有密码强度提供者!在 passwordstrength.ts 文件中
HTML
<div class="validation_errors text-left">
<ng-container *ngFor="let validation of validationmessages.password">
<div class="error-message"
*ngIf="loginform.get('password')?.hasError(validation.type) && (loginform.get('password')?.dirty || loginform.get('password')?.touched)">
<span> {{ validation.message }}</span>
<p class="help is-danger"
*ngIf="loginform.get('password')?.hasError('strong')">
Must have at least one number, one lowercase and one uppercase letter.</p>
</div>
</ng-container>
</div>
ts
this.loginform = this.formbuilder.group({
username: ['', Validators.required],
password: ['', passwordstrength.strong]
});
}
密码强度.ts
import { FormControl } from '@angular/forms';
export interface ValidationResult {
[key: string]: boolean;
}
export class passwordstrength {
public static strong(control: FormControl): ValidationResult {
let hasNumber = /\d/.test(control.value);
let hasUpper = /[A-Z]/.test(control.value);
let hasLower = /[a-z]/.test(control.value);
// console.log('Num, Upp, Low', hasNumber, hasUpper, hasLower);
const valid = hasNumber && hasUpper && hasLower;
if (!valid) {
// return what´s not valid
return { strong: true };
}
return null!;
}
}
【问题讨论】:
-
你能把密码强度.ts文件的全部内容贴出来吗?
-
请立即查看。首先我写了,返回 null 它说错误,因为类型“null”不能分配给类型“ValidationResult”。所以我把它改成返回null!现在我在控制台中遇到错误
-
如果您有用于检查密码强度的代码,请分享其他代码,即使这会有所帮助
-
您需要在 AppModule.ts 或组件模块中为提供程序添加密码强度
标签: html angular typescript angular-reactive-forms