gpt4 book ai didi

angular - 如何使用angular 5验证网站地址

转载 作者:行者123 更新时间:2023-12-04 15:47:55 24 4
gpt4 key购买 nike

我想验证 angular 5 中的 url 不工作。

<input type="url" name="url" id="url" ngModel pattern="https?://.+">
<div *ngIf="url.errors && (url.dirty || url.touched)" class="alert alert-danger">

<div [hidden]="!url.errors.pattern">
</div>
</div>

最佳答案

要以 react 形式验证 URL/Web 地址,您可以按照以下方法对表单控件使用 Validators.pattern

const urlRegex = '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?';

this.hospitalForm = this.fb.group({
Website: ['', Validators.pattern(urlRegex)],
});

要以模板驱动的形式验证 URL/Web 地址,您应该创建一个自定义验证器指令,如下所示

@Directive({
selector: '[appPattern]',
providers: [{provide: NG_VALIDATORS, useExisting: PatternValidatorDirective, multi: true}]
})
export class PatternValidatorDirective implements Validator {
@Input('appPattern') pattern: string;

validate(control: AbstractControl): {[key: string]: any} | null {
return this.pattern ? this.patternValidator(new RegExp(this.pattern, 'i'))(control)
: null;
}

patternValidator(nameRe: RegExp): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} | null => {
const regextest = nameRe.test(control.value);
return (!regextest) ? {'apppattern': {value: control.value}} : null;
};
}
}

在您的输入中,您应该将 appUrl 与正则表达式一起使用:

<input  type="url" name="url" id="url" ngModel appPattern="(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?">

关于angular - 如何使用angular 5验证网站地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54976847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com