淘汰attr href输出问题

时间:2015-08-24 13:14:07

标签: javascript jquery html knockout.js

我有一个控件,允许用户保存一些链接。他可以添加链接的显示值(基本上是<a>中的文本)和链接本身(href属性)。

问题是,我无法知道他是否也在添加协议(http://https://部分,这通常是复制粘贴的结果从浏览器的URL地址栏链接或他手动输入&#39; www ....&#39;。

基本上,如果用户手动输入地址(www ..),它将被附加到当前域 - 这里是一个例子 - http://jsfiddle.net/ty4tLtkj/4/

如果用户将http://部分添加到链接前面,则可以避免这种情况 - 例如此处 - http://jsfiddle.net/ty4tLtkj/5/

有没有办法确保输入的链接永远不会附加到域名?

2 个答案:

答案 0 :(得分:1)

当然可以:

if (pathname.substring(0, 7) == "http://" || pathname.substring(0, 8) == "https://")

if (pathname.substring(0, 3) == "www")

否则无法实现,因为没有http(s)://的链接会自动附加到当前网址。

答案 1 :(得分:1)

匹配http;

的字符串
var out = $("#input").val();
if(!out.match(/^https?:\/\//i)) //User didn't type http(s)://
{
    out = "http://" + out; //So add http://
}

现在:&#34; http://google.nl&#34;将是相同的但是&#34; www.google.nl&#34;将是&#34; http://www.google.nl&#34;

要解释.match(/ ^ https?:\ / \ // i),这是正则表达式:

  • ^ =以。
  • 开头
  • HTTP
  • S' = s或没有s。
  • :\ / \ / =://
  • i =不区分大小写