Angular 带模式的角度材质url验证
你好 我正在使用Angular材质,我已经创建了一个表单字段,我想验证我的url,但它不起作用。我试着用电子邮件,它是工作。 我还希望在输入有效url之前禁用该按钮: 这是我的密码:Angular 带模式的角度材质url验证,angular,typescript,Angular,Typescript,你好 我正在使用Angular材质,我已经创建了一个表单字段,我想验证我的url,但它不起作用。我试着用电子邮件,它是工作。 我还希望在输入有效url之前禁用该按钮: 这是我的密码: export class StartComponent implements OnInit { searchValue: string; url: any; public reg = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-z
export class StartComponent implements OnInit {
searchValue: string;
url: any;
public reg = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
constructor() { }
ngOnInit() {
this.url = new FormControl('', [Validators.required, Validators.pattern(this.reg)]);
this.getErrorMessage();
}
getErrorMessage() {
return this.url.hasError('required') ? 'You must enter a value' :
this.url.hasError('email') ? 'Not a valid url' :
'';
}
}
HTML
<mat-card class="searchbox">
<mat-form-field>
<input matInput placeholder="Enter your url" [formControl]="url" required>
<mat-error *ngIf="url.invalid">{{getErrorMessage()}}</mat-error>
</mat-form-field>
<!--Here button should be disabled if url not valid and until there is something entered-->
<button mat-stroked-button color="warn">GO</button>
</mat-card>
<mat-error *ngIf="form.get('url').hasError('pattern')">Invalid URL format</mat-error>
{{getErrorMessage()}}
去
stackblitz上的应用程序是否可用
试着这样做:
HTML
<mat-card class="searchbox">
<mat-form-field>
<input matInput placeholder="Enter your url" [formControl]="url" required>
<mat-error *ngIf="url.invalid">{{getErrorMessage()}}</mat-error>
</mat-form-field>
<!--Here button should be disabled if url not valid and until there is something entered-->
<button mat-stroked-button color="warn">GO</button>
</mat-card>
<mat-error *ngIf="form.get('url').hasError('pattern')">Invalid URL format</mat-error>
您只需使用内置的URL APIurlValidator如果提供的控件的url值有效,则返回null,否则返回“模式”错误。HTML
<mat-card class="searchbox">
<mat-form-field>
<input matInput placeholder="Enter your url" [formControl]="url" required>
<mat-error *ngIf="url.invalid">{{getErrorMessage()}}</mat-error>
</mat-form-field>
<!--Here button should be disabled if url not valid and until there is something entered-->
<button mat-stroked-button color="warn">GO</button>
</mat-card>
<mat-error *ngIf="form.get('url').hasError('pattern')">Invalid URL format</mat-error>
您只需使用内置的URL APIurlValidator如果提供的控件的url值有效,则方法返回null,否则返回“模式”错误。您好,但如果您第一次输入且url无效,您不会立即收到无效urlyes的无效消息,因为它会在触摸时激活。如果你想的话,你需要将它设置为触动。这取决于你。首先激活(模糊)。非常感谢您的支持。这正是我所需要的。但我猜,如果你能把自己的函数写进handleyes,那就容易多了。你能写多少取决于验证的次数。您还可以创建公共消息模板以进行大量验证。它不允许url:
http://www.google.com
Hi,这样更好,但如果您第一次输入时url无效,您不会立即收到无效url的无效消息Yes,因为它会在触摸时激活。如果你想的话,你需要将它设置为触动。这取决于你。首先激活(模糊)。非常感谢您的支持。这正是我所需要的。但我猜,如果你能把自己的函数写进handleyes,那就容易多了。你能写多少取决于验证的次数。您还可以创建公共消息模板以进行大量验证。它不允许url:http://www.google.com
您可以尝试创建一个URL
,如果成功则返回true,如果抛出异常则返回false,而不是使用regex。当然,您需要编写自己的验证器,而不是使用regex,您可以尝试创建URL
,如果成功则返回true,如果抛出异常则返回false。当然,您需要编写自己的验证器。