嗨,使用angular 2作为密码字段,我必须设置“密码应该至少有1个大写字母,1个小写字母,1个数字,1个特殊字符,最少8个字符,最多16个字符”
因为我已经完成了“最少8个字符,最多16个字符”。
但我无法为其余的东西设置至少1个大写字母,1个小写字母,1个数字,1个特殊字符。
<div class ="form-group">
<label> Password </label>
<input class ="form-control" name ="password" #password="ngModel" [(ngModel)] = "angulaService.selectedAngula.password"
placeholder="password" minlength="8" maxlength="16" >
<div class="form-control-feedback"
*ngIf="password.errors && (password.dirty || password.touched)">
<p *ngIf="password.errors.required">Password is required</p>
<p *ngIf="password.errors.minlength">Password must be min 8 characters long</p>
</div>
<div class="form-control-feedback"
*ngIf="password.errors && (password.dirty || password.touched)">
<p *ngIf="password.errors.required">Password is required</p>
<p *ngIf="password.errors.maxlength">Password should not be greater than 16 characters long</p>
</div>
</div>
请帮我一下
预先感谢
最好使用Regex,
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]
(您已经在检查最小长度和最大长度,因此无需在正则表达式中设置长度限制,但您仍然可以通过正则表达式进行此操作。尽管我建议将这两个错误分开。)
大写验证器示例:
import { Directive } from '@angular/core';
import {NG_VALIDATORS, AbstractControl, ValidationErrors, Validator} from '@angular/forms';
@Directive({
selector: '[uppercaseValidator]',
providers: [{provide: NG_VALIDATORS, useExisting: UppercaseValidatorDirective, multi: true}]
})
export class UppercaseValidatorDirective implements Validator {
validate(control: AbstractControl): ValidationErrors | null {
const value = control.value
return /[A-Z]/.test(value) ? null : { uppercase: 'Must contain at least one upper case character'}
}
}
用法:
应用程序组件.html
<form>
<input uppercaseValidator [(ngModel)]="uppercase" #uppercaseCtrl="ngModel" name="uppercase"/>
<div *ngIf="uppercaseCtrl.hasError('uppercase')">At least one character must be uppercased</div>
</form>
应用程序组件
<form>
<input uppercaseValidator [(ngModel)]="uppercase" #uppercaseCtrl="ngModel" name="uppercase"/>
<div *ngIf="uppercaseCtrl.hasError('uppercase')">At least one character must be uppercased</div>
</form>
现场演示
按照创建自定义验证指令的相同步骤创建其他验证程序。您只需要更改正则表达式和错误消息。您可以使用以下正则表达式:
/[A-Z]/
/[a-z]/
/[0-9]/
我正在建立Angular 4 NodeJS(用于SAML-PASSPORT)Spring Boot(所有API)应用程序。 这是身份验证和授权流程:1。在UI中,用户单击登录2。请求被发送到SAML IDP以进行登录3。用户验证自己4。SAML IDP发回我的NodeJS APIendpoint/登录/回调5。NodeJS将用户重定向到前端-此时,我想生成一个令牌并将其发送到UI端。我无法通过UR
我想在进行某些处理时显示一个进度条覆盖图。我可以计算完成百分比,所以我想使用一个确定的进度条。对于覆盖部分,我想使用一个对话框。基本上,我想做这里要做的事情(Angular 2 Material Progress微调器:显示为叠加),但我不需要微调器。因此,我的组件将如下所示: 模板: 元件: 然后我使用这个组件的代码如下: 我发现了这一点(如何将数据传递到angular material 2的对
我现在有一个小应用程序,它使用Keycloak来拥有一个SSO。但是,当我想对main.component.ts进行ng测试时,我遇到了标准的'It Wall Create'测试失败的问题,我得到了以下错误消息: 从“./main.component”导入{MainComponent};从“../app.topbar.component”导入{AppTopBarComponent};从'../ap
> 到目前为止,我使用角2快速入门创建了一个新项目。 我决定开始使用angular 2 cli,并创建了一个新的angular 2 cli项目。 移动了我的所有文件并重新安装了所有软件包。 现在,当我试图在CLI项目中使用角2材料时,我遵循了这里的指南,但这是我得到的: 会出什么问题?
我需要验证密码输入表单字段的强度。要求是: < li >至少一个小写字符 < li >至少一个大写字符 < li >至少一个号码< br >(无论顺序) 我迄今为止搜索和尝试的结果如下,结果不一致。 它似乎验证了正则表达式验证的顺序。 我需要的是检查是否存在至少一个字符“类型”。
问题内容: 我知道这个问题已经被问过很多次了,而且我知道在大多数情况下人们会丢失文件。 我遇到了同样的问题,试图在模块上测试工厂。不幸的是,我一直遇到测试方面的问题(为什么要使用Angular,为什么要假设和对象?),未定义模块的状态。我很茫然。我也尝试过使用angular.mocks.module,但随后收到一条消息,提示未定义Angular。我究竟做错了什么? 值得注意的是,我正在使用gulp