2012-07-02 21 views
22

私はすべての回答を探しており、私が見つけたすべての回答はJavaScriptにはありませんでした。文字列がJavascriptを使用してhttpで始まっているか確認してください。

JavaScript、http、https、またはftpで始まる文字列かどうかを確認する方法が必要です。それらのいずれかで始まらない場合は、文字列の先頭にhttp://を追加する必要があります。 indexOfは私のためには動作しません。私はhttp、https、またはftpのいずれかが必要であるとは思いません。また、google.com/?q=http://google.comのようなものは、httpで始まらないので有効であることをトリガーする必要はありませんが、indexOfはそれが真実であるとトリガーします(私が完全に間違っていない場合)。

私が見つけた最も近いPHPの正規表現はこれです:私はJavaScriptにそれを変換する方法がわからない

function addhttp($url) { 
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { 
     $url = "http://" . $url; 
    } 
    return $url; 
} 

Source: How to add http if its not exists in the url

。どんな助けでも大歓迎です。

+0

恥の混乱は、Java、Javaの – Foon

+0

をしませ削除スクリプト。 – tskuzzy

+0

[ブラウザの正規表現URL](http://stackoverflow.com/questions/2899454/regular-expression-for-browser-url) – Hamish

答えて

72
function addhttp(url) { 
    if (!/^(f|ht)tps?:\/\//i.test(url)) { 
     url = "http://" + url; 
    } 
    return url; 
} 
+4

値がない(または空の)文字列がないときに 'http://'を返さないように 'url' if(url &&!/ ^(f | ht)tps?:\/\ // i.test(url)) –

+0

+1で大文字小文字を区別しない –

2

これは動作するはずです:

var re = /^(http|https|ftp)/ 
15

これは動作するはずです:JavaScriptとJavaを

var pattern = /^((http|https|ftp):\/\/)/; 

if(!pattern.test(url)) { 
    url = "http://" + url; 
} 

jsFiddle

+0

最高の方、ありがとうございました。 – RobertoAllende

8
var url = "http://something.com" 
if(url.indexOf("http") == 0) { 
    alert("yeah!"); 
} else { 
    alert("No no no!"); 
} 
+1

あなたがそれよりも 'SPACE http'を持っている場合は、URLをトリムしてください:P –

関連する問題