2009-09-08 26 views

Antwort

40

arbeiten Wenn Sie dies nicht eine Regex tun müssen, um (je nachdem, welche Sprache Sie verwenden), können Sie einfach auf den ersten Zeichen der Zeichenfolge suchen. Zum Beispiel:

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

Mögen viele, viele upvotes Ihnen verliehen werden. Manchmal sind Regexes übertrieben. –

+1

Danke für den Segen. Ja, manchmal werden starke Sprachfunktionen überstrapaziert. Regex sind nicht so schnell wie einfache String-Operationen. –

6

In JavaScript:

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

Sollte sein:

/^http:\/\// 

Und denken Sie daran, dies zu verwenden, um mit ! oder not (Sie nicht die Programmiersprache zu sagen haben), da Sie Suche nach Elementen, die nicht übereinstimmen.

3

So etwas sollte ^(https?://)

+0

Sie müssen die/s entkommen. – scragar

0

Wenn Javascript die Sprache hier erforderlich ist, dann wird bei this post suchen, die „starts“ Eigenschaft auf den String-Typ hinzufügt.

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

Ist mehr sexy

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

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

alert(url); 
+1

Während dieser Code die Frage beantworten kann, würde das Bereitstellen eines zusätzlichen Kontexts bezüglich * wie * und/oder * warum * das Problem lösen, den langfristigen Wert der Antwort verbessern. - [Aus Review] (http://stackoverflow.com/review/low-quality-posts/13275385) –

Verwandte Themen