2009-09-08 14 views

Respuesta

40

Si usted no necesita una expresión regular para hacer esto (dependiendo de qué idioma se está utilizando), usted puede simplemente mirar a los caracteres iniciales de la cadena. Por ejemplo:

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

Pueden muchos, muchos upvotes se otorgan a usted. Algunas veces, las expresiones regulares son excesivas. –

+1

Gracias por la bendición. Sí, a veces las funciones de lenguaje de gran alcance se usan en exceso. Regex no son tan rápidos como simples operaciones de cuerda. –

6

En JavaScript:

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

debe ser:

/^http:\/\// 

Y recuerde utilizar esto con ! o not (que no has dicho que el lenguaje de programación), ya que eres buscando artículos que no coinciden.

3

Algo como esto debería funcionar ^(https?://)

+0

Tienes que escapar de la/s. – scragar

0

Si JavaScript es el lenguaje que se necesita aquí, y luego mirar this post que añade la propiedad "startswith" al tipo de cadena.

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

Es más atractiva

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

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

alert(url); 
+1

Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a * cómo * y/o * por qué * resuelve el problema mejoraría el valor de la respuesta a largo plazo. - [De la crítica] (http://stackoverflow.com/review/low-quality-posts/13275385) –

Cuestiones relacionadas