我有这个URL验证程序代码, 在键入“ www.wwww.www”或“ wwww.wwwww”时通过 像这样“ wwww.wwwww”最后添加点时,它不会通过。当我们填写“ wwww.wwwww”之类的输入时,需要它不通过。我应该如何更改代码?
export class WebsiteValidator {
public static validate(control: AbstractControl) {
const URL_REGEXP = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?
[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/;
return (control.value && !URL_REGEXP.test(control.value)) ? {
validateUrl: {
valid: false
}
} : null;
}
}
答案 0 :(得分:0)
您为什么要自己实施验证器?这是一个非常棘手的问题,也是一个已解决的问题。
除非您这样做是为了娱乐,否则我建议使用现有的验证器之一,例如this one。如果您对正则表达式的外观感兴趣,可以在this gist中找到它。
祝你好运!
答案 1 :(得分:0)
尝试最好的代码。
$(document).ready(function () {
$('input').keyup(function() {
var $th = $(this);
if (isValidUrl($th.val())==1){
alert("got a valid url!");
}else
{
alert("got a novalid url!");
}
});
});
function isValidUrl(url){
var myVariable = url;
if(/^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i.test(myVariable)) {
return 1;
} else {
return -1;
}
}