2012-07-02 13 views
22

Bu sorunun cevabını bulmak için her yeri aradım.Bir dizginin Javascript kullanılarak başlatılıp başlatılmadığını kontrol edin

Bir dizenin http, https veya ftp ile başlayıp başlamadığını kontrol etmek için javascript'in bir yoluna ihtiyacım var. Eğer bunlardan biriyle başlamıyorsa, http:// ile stringi eklemem gerekiyor. indexOf benim için işe yaramıyor Ben http, https veya ftp ya ihtiyacım gibi düşünmüyorum. Ayrıca google.com/?q=http://google.com gibi bir şeyi bir http ile başlamadığından geçerli olarak tetiklemek istemiyorum. IndexOf bunu true olarak tetikler (tamamen yanılmamışım).

buldum en yakın PHP regex

şudur:

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

Sadece javascript o dönüştürmek için nasıl bilmiyorum. Herhangi bir yardım büyük takdir edilecektir.

+0

utanç verici karışıklık Java var – Foon

+0

silinmiş değil, Java Senaryo. – tskuzzy

+0

olası bir kopyası [Tarayıcı URL'si için düzenli ifade] (http://stackoverflow.com/questions/2899454/regular-expression-for-browser-url) – Hamish

cevap

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

'url' değerini kontrol etmek için 'http: //' değerini geri döndürmekten kaçınmak için değer (veya boş) dizgisi eklenmemesi önerilir. sağlanır: if (url &&!/^ (f | ht) tps?: \/\ // i.test (url)) duyarsız büyük harf için –

+0

+1 –

2

Bu çalışması gerekir:

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

Bu çalışması gerekir:

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

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

jsFiddle

javascript ve java
+0

En iyisi, çok teşekkür ederim. – RobertoAllende

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

url'yi, 'SPACE http' dosyanız varsa, sorun olduğundan daha düzeltebilirsiniz: P –

İlgili konular