我正在尝试使用识别 URLS 的正则表达式。我取自: 检查 Javascript 字符串是否为 url ,其代码为:
function ValidURL(str) {
var pattern = new RegExp('^(https?:\/\/)?'+ // protocol
'((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|'+ // domain name
'((\d{1,3}\.){3}\d{1,3}))'+ // OR ip (v4) address
'(\:\d+)?(\/[-a-z\d%_.~+]*)*'+ // port and path
'(\?[;&a-z\d%_.~+=-]*)?'+ // query string
'(\#[-a-z\d_]*)?$','i'); // fragment locater
if(!pattern.test(str)) {
alert("Please enter a valid URL.");
return false;
} else {
return true;
}
}
每当我发送以下错误 URL 时:“ http://www.pinevalleyscountrycreations.com/sitebuildercontent/sitebuilderpictures/.gif ”
通过这段代码,我的浏览器冻结了几分钟,但在冻结之后它返回一个真值。
关于正则表达式对这两个问题的定义中缺少什么的任何想法?冻结和错误的返回值?
提前致谢!