2012-03-15 14 views
1

私は、ユーザーがURLを入力して[リンクを確認]という名前のテキストボックスを持っています。ボタンをクリックすると、ユーザーが入力したURLで新しいウィンドウが開きます。 URLに「http://google.com」と入力した場合、window.open( 'http://google.com');正常に動作していますが、「www.google.com」と入力すると、有効なURLではない現在のウィンドウのURL(http:// localhost:1234www.google.com)に追加されます。この仕事をするには?事前にURLにhttpが含まれていないと問題が発生するWindow.Open

おかげ

答えて

0

チェック&先頭に追加

if (!/^(http:|https:)/i.test(url)) 
    url = "http://" + url; 
0

あなたの質問は、「文字列は 『のhttp://』で始まる場合はどのようにテストするのですか?そして、それを付加されていない場合」である場合、そして、このような何か:

var url = "somestring.com"; // as set from your textbox 
if (0 != url.toLowerCase().indexOf("http")) 
    url = "http://" + url; 

このテストを実行する前に、先頭と末尾のスペースをトリミングするのが賢明だろうが、私は読者の練習としてそれを残しておきます...

0

はonclickのボタンを追加します。関数を呼び出し、その中のテキストを処理します。

function checkLink() { 
    var url = document.getElementById("textbox-id").value; 
    if(url.substr(0,7) != "http://") { 
     alert("Invalid URL! Please make it like http://myurl.com"); 
    return false; 
    } 
} 
1

これを試してみてください:返信用

function f(url) { 
    if (url.indexOf("http://") == -1) { 
     url = "http://" + url; 
    } 
    window.open(url); 
} 
+0

おかげで..私はこの方法ではなく、HTTPが存在するかチェックするためにREGXを使用することで解決。このように奇妙に見えます。他の方法を試してみてください。問題の原因を理解していないのですか? – Santhosh

+0

私は、正規表現のリソースを必要としていないときに、リソースを腰掛けているわけではないので、私の立場からは良い点です。同じ結果の場合、これは正規表現と比較すると複雑さが低くなります。 – elmuchacho

+0

私はもっと同意できませんでした – Tom

関連する問題