我试图检查发送的 URL 是否以 http 或 www 开头,以下正则表达式始终返回 true。
function checkFormat(url){
var validUrl='';
const regExp= new RegExp(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/);
if(regExp.test(url)){
validUrl= url;
}
else{
validUrl= 'http://'+url;
}
console.log(validUrl);
return validUrl;
}
例如,如果我发送 test.com,则 validUrl 将是 test.com。 如果我发送http://test.com ,validUrl 将是 http://test.com .
我做错了什么?
最佳答案
我个人不会在这里使用正则表达式,这是不必要的。
if ( url.startsWith("http://") || url.startsWith("www" ) {
可以正常工作(只要你有 .startsWith 的 polyfill)。要添加它,请执行
const validUrl = url.startsWith("http://") ? url : `http://${url}`;
关于javascript - 匹配http或www的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46117979/