将协议(protocol)添加到url字符串的Javascript正则表达式

标签 javascript regex url

我有一个使用 JavaScript 列出一些网站详细信息的应用程序。将有一个使用 JavaScript 本身生成的网站链接。有时我会得到我的链接,

<a href="http://www.google.com">Website</a>

但有时会,

<a href="www.yahoo.com">Website</a>

第二次链接不通,没有协议(protocol)。

所以我正在寻找一个 JavaScript 正则表达式函数来在没有协议(protocol)的情况下添加 http://。

我的代码看起来像,

var website_link = document.createElement("a"); 
website_link.innerHTML = "Website"; 
website_link.href = my_JSON_object.website;
website_link.target = "_blank"; 
profile.appendChild(website_link); 

并且不会出现本地链接。

最佳答案

参见 this关联。

function setHttp(link) {
    if (link.search(/^http[s]?\:\/\//) == -1) {
        link = 'http://' + link;
    }
    return link;
}
alert(setHttp("www.google.com"));
alert(setHttp("http://www.google.com/"));  

在你的代码中它会是这样的:

var website_link = document.createElement("a"); 
website_link.innerHTML = "Website";
if (my_JSON_object.website.search(/^http[s]?\:\/\//) == -1) {
    my_JSON_object.website = 'http://' + my_JSON_object.website;
}
website_link.href = my_JSON_object.website;
website_link.target = "_blank"; 
profile.appendChild(website_link); 

关于将协议(protocol)添加到url字符串的Javascript正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052919/

相关文章:

javascript - 使用javascript更改url并修改历史记录?

javascript - RequireJS 和 Backbone ajax 问题

javascript - Fancybox 2.1.5 点击时隐藏我的图像

regex - 如何从包含文件名一部分的列表中 -find -exec cp 文件

java - 在JAVA中删除最后一个斜杠后的字符串

java - 从 URL 或 HttpUrlConnection 获取下载文件名?

javascript - while 循环不适用于 $.each

javascript - 根据 if 语句结果更改 if 语句参数中的变量值

javascript - 正则表达式删除 : (including :) 之后的所有内容

php - REGEX 匹配除/以 : 开头的所有内容