javascript - 匹配http或www的正则表达式

标签 javascript regex

我试图检查发送的 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/

相关文章:

c# - 正则表达式有助于从字符串中提取值

javascript - 检查字符串是否以标点符号开头(Javascript)

python - 在python中解析GSM调制解调器接收到的消息参数

javascript - 将窗口调整大小事件分别附加到每个元素

PHP 条件字符串替换 str_replace

javascript - MomentJS 设置时区

javascript - 如何通过 Javascript 将多个值写入 BLE 特性?

iphone - 在Objective-C中解析以@和#开头的字符串

javascript - 获取传单绘制中多边形中的所有标记

javascript - 测试变量是否在javascript中定义?