目前,我正在使用 Angular 5。我尝试如下验证 URL:
HTML:
<div class="form-group col-sm-6">
<input formControlName="s_url" type="url" class="form-control" id="kk" placeholder="url">
<error-display [displayError]="isValid('s_url')" errMsg="This field is required!"></error-display>
</div>
在 validate.ts
文件中,我有这个模式:
s_url: new FormControl('', [
Validators.required,
Validators.pattern("/^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/")
]),
但是对于这个模式,即使输入了正确的 url 也会显示错误消息。
最佳答案
您可以通过稍微修改和分隔您的正则表达式来尝试这种方式:
const reg = '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?';
...
Validators.pattern(reg)
根据我自己的经验,引号 ("
) 和斜杠 (/
) 有时会在直接传递到 .pattern()< 时导致正则表达式出现问题
这是一个有效的 Demo
关于angular - 验证 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50508712/