我有一个使用 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/