2009-09-08 118 views

回答

40

如果你并不需要一个正则表达式来做到这一点(取决于你所使用的语言),你可以简单地看一下你的字符串的初始字符。例如:

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

可以给你许多许多赞美词。有时候,正则表达式是矫枉过正的。 – 2009-09-08 20:13:35

+1

谢谢你的祝福。是的,有时候强大的语言功能会被过度使用。正则表达式并不像简单的字符串操作那么快。 – 2009-09-08 20:42:29

6

在JavaScript:

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

应该是:

/^http:\/\// 

记住与!not使用(你没有说的编程语言),因为你是寻找不匹配的物品。

3

像这样的东西应该工作^(https?://)

+0

您需要转义/ s。 – scragar 2009-09-08 19:51:59

0

如果JavaScript是这里所需要的语言,然后再看看this post它增加了“startswith”属性字符串类型。

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

更加性感

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

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

alert(url); 
+1

虽然这段代码可能会回答这个问题,但提供关于* how *和/或* why *的附加上下文是否可以解决问题会提高答案的长期价值。 - [来自评论](http://stackoverflow.com/review/low-quality-posts/13275385) – 2016-08-09 16:16:10

相关问题