2009-09-08 15 views

Odpowiedz

40

Jeśli nie potrzebują regex to zrobić (w zależności od tego, co język używasz), można po prostu spojrzeć na początkowych znaków z Twojego ciąg. Na przykład:

if (!string.StartsWith("http://")) 
    string = "http://" + string; 
//or// 
if (string.Substring(0, 7) != "http://") 
    string = "http://" + string; 
+3

Oby wielu zostało upublicznionych. Czasami regexes są przesadne. –

+1

Dziękuję za błogosławieństwo. Tak, czasami potężne funkcje językowe są nadużywane. Regex nie są tak szybkie, jak proste operacje na łańcuchach. –

6

W JavaScript:

if(!(/^http:\/\//.test(url))) 
{ 
    string = "http://" + string; 
} 
8

Powinno być:

/^http:\/\// 

I pamiętaj, aby użyć ich ! lub not (nie powiedziałeś jaki język programowania), ponieważ jesteś szukanie przedmiotów, które nie pasują.

3

Coś jak to powinno działać ^(https?://)

+0

Musisz uciec z/s. – scragar

0

Jeśli JavaScript jest językiem potrzebny tutaj, a następnie spojrzeć na this post która dodaje „startswith” obiekt do typu string.

2
yourString = yourString.StartWith("http://") ? yourString : "http://" + yourString 

Czy bardziej sexy

2
var url = "http://abcd"; 
var pattern = /^((http|https|ftp):\/\/)/; 

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

alert(url); 
+1

Chociaż ten kod może odpowiedzieć na pytanie, podanie dodatkowego kontekstu dotyczącego * how * i/lub * dlaczego * rozwiązuje problem, poprawi długoterminową wartość odpowiedzi. - [Z recenzji] (http://stackoverflow.com/review/low-quality-posts/13275385) –

Powiązane problemy