Foros del Web » Programando para Internet » Javascript »

Cómo detectar si una cadena comienza por http:// o si por lo contrario es un email

Estas en el tema de Cómo detectar si una cadena comienza por http:// o si por lo contrario es un email en el foro de Javascript en Foros del Web. Hola amigos. Mi duda es la siguiente. Estoy haciendo una especie de editor de texto casi wysiwyg y estaba en la parte de hipervínculos cuando ...
  #1 (permalink)  
Antiguo 04/06/2009, 11:06
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Exclamación Cómo detectar si una cadena comienza por http:// o si por lo contrario es un email

Hola amigos. Mi duda es la siguiente. Estoy haciendo una especie de editor de texto casi wysiwyg y estaba en la parte de hipervínculos cuando me encontré con un problema (y no tengo mucho tiempo para resolverlo, por eso acudo a vosotros, muchas gracias por ayudar):

Necesito detectar si una cadena (que ya la recojo yo, llamémosla cadena1) comienza por "http://" o por lo contrario es un email "[email protected]".

Hay alguna función que detecte expresiones con javascript?

Gracias y un saludo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 04/06/2009, 11:16
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Cómo detectar si una cadena comienza por http:// o si por lo contrario es

Hola CHuLoSoY

Eso lo puedes hacer con expresiones regulares.

Aqui te dejo un link donde encontraras información.

http://www.w3schools.com/
  #3 (permalink)  
Antiguo 04/06/2009, 11:36
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Cómo detectar si una cadena comienza por http:// o si por lo contrario es

Gracias por tu pronta respuesta :)
He estado mirando y probando y no hay manera. Siempre me devuelve true y no es normal. Mi código es este:
Cita:
var siesweb=new RegExp("http://","i")

if(siesweb.test(cadena)==true) { } else { }
incluso he probado
Cita:
var siesweb=new RegExp("^http://","i")

if(siesweb.test(cadena)==true) { } else { }
Y no va. Por cierto, esto lo he encontrado en books.google.

Un saludo
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Última edición por CHuLoSoY; 04/06/2009 a las 11:42
  #4 (permalink)  
Antiguo 04/06/2009, 14:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Cómo detectar si una cadena comienza por http:// o si por lo contrario es

Hola

Hola

Parece correcto lo que haces, prueba esto

Código javascript:
Ver original
  1. var cadena = "http://tuweb.com"
  2. var siesweb= new RegExp("http://","i")
  3. if (siesweb.test(cadena) == true) {
  4. alert("Es una url");
  5. }
  6. else {
  7. alert("Es un email");
  8. }

también podrías usar exec

Código javascript:
Ver original
  1. var cadena = "http://tuweb.com"
  2. var siesweb= /http:\/\//g.exec(cadena);
  3. if (siesweb) {
  4. alert("Es una url");
  5. }
  6. else {
  7. alert("Es un email");
  8. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 04/06/2009, 16:51
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Cómo detectar si una cadena comienza por http:// o si por lo contrario es

Cita:
Iniciado por Adler Ver Mensaje
Código javascript:
Ver original
  1. var cadena = "http://tuweb.com"
  2. var siesweb= /http:\/\//g.exec(cadena);
  3. if (siesweb) {
  4. alert("Es una url");
  5. }
  6. else {
  7. alert("Es un email");
  8. }
gracias amigo, de esta forma sí me ha funcionado. Es posible que sea mi SO (gnu/linux) o el navegador Firefox. El problema que tenía era que SIEMPRE me devolvía TRUE.
Para quien quiera saber el código que he puesto:

Código:
var cadena = "http://www.google.es";

      var siesweb=/http:\/\//i.exec(cadena);
      var siesemail=/@/g.exec(cadena);
      var sieswebwww=/www./g.exec(cadena);

	var quees="nada";

	if(siesweb) { quees="web"; }
	if(sieswebwww) { quees="webwww"; }
	if(siesemail) { quees="email"; }

      if (quees=="web") { 
          // CODIGO PARA WEBS QUE EMPIECEN POR http://
      }
      else if (quees=="webwww") { 
          // CODIGO PARA WEBS QUE EMPIECEN POR www
      }
      if (quees=="email") { 
          // CODIGO PARA TEXTOS CON UNA ARROBA (EMAIL)
      }
Lo del email es un poco chapucero. Tal vez comprobando que hay una cadena - arroba - cadena - punto - dominio ... ¿cómo se podría hacer esto? Lo de los patrones estoy bastante confundido.

Gracias y un saludo!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 05/06/2009, 06:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Cómo detectar si una cadena comienza por http:// o si por lo contrario es

Hola

Aquí tienes como validar un email

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.