我有一个控件,允许用户保存一些链接。他可以添加链接的显示值(基本上是<a>
中的文本)和链接本身(href
属性)。
问题是,我无法知道他是否也在添加协议(http://
或https://
部分,这通常是复制粘贴的结果从浏览器的URL地址栏链接或他手动输入&#39; www ....&#39;。
基本上,如果用户手动输入地址(www ..),它将被附加到当前域 - 这里是一个例子 - http://jsfiddle.net/ty4tLtkj/4/
如果用户将http://
部分添加到链接前面,则可以避免这种情况 - 例如此处 - http://jsfiddle.net/ty4tLtkj/5/
有没有办法确保输入的链接永远不会附加到域名?
答案 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),这是正则表达式: