3

JavaScript を使用して Web サイトの詳細を一覧表示するアプリケーションがあります。JavaScript自体を使用して生成されたWebサイトへのリンクがあります。時々、私は自分のリンクを次のように取得します。

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

しかし、時にはそうなるでしょう、

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

2 回目にリンクが機能しない場合は、プロトコルがありません。

したがって、プロトコルがない場合に http:// を追加する JavaScript 正規表現関数を探しています。

私のコードは次のようになります

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); 

そして、ローカルリンクは来ません。

4

3 に答える 3

8

このリンク を参照してください。

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); 
于 2013-08-05T08:29:48.577 に答える
1

たとえば、否定的な先読みを使用すると、次のようになります。

your_string.replace(/href="(?!http)/, 'href="http://');

例:

> '<a href="www.yahoo.com">Website</a>'.replace(/href="(?!http)/, 'href="http://');
"<a href="http://www.yahoo.com">Website</a>"
> '<a href="http://www.yahoo.com">Website</a>'.replace(/href="(?!http)/, 'href="http://');
"<a href="http://www.yahoo.com">Website</a>"
于 2013-08-05T07:43:53.600 に答える