Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Permitir solo algunos dominios en un input

Estas en el tema de Permitir solo algunos dominios en un input en el foro de Javascript en Foros del Web. Buenas noches amigos, me animé a publicar aquí mi problema ya que estoy diseñando un sistema por diversión y reto pero luego de pensar bastante ...
  #1 (permalink)  
Antiguo 09/02/2016, 22:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Permitir solo algunos dominios en un input

Buenas noches amigos, me animé a publicar aquí mi problema ya que estoy diseñando un sistema por diversión y reto pero luego de pensar bastante y buscar información por todos lados he caído en esto que no me deja continuar el proyecto.

básicamente necesito una función en javascript que me permita verificar si la url que está en un input text está permitida.

por ejemplo, si tengo un input text y escribo "http://google.com" o "http://fb.com/ejemplo" o "htpp://www.dropbox.com/dvubsnivhbsvsdvsdv"

me permita enviar el formulario

pero si escribo o pego algún otro url que no sean de los dominios antes mencionados, pues que no me permita enviar el formulario.

he estado tratando de usar expresiones regulares sin éxito ya que soy nuevo en ello y solo me permiten usar un dominio y además tampoco me llegaba a funcionar de esa foma, es por eso que vengo aquí a pedirles de su tiempo y ayuda.

muchas gracias.
  #2 (permalink)  
Antiguo 10/02/2016, 06:02
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Permitir solo algunos dominios en un input

Puedes crear una validación antes de enviar el formulario.


Código HTML:
Ver original
  1. <input type="text" id="texto" />
  2. <button onclick="validar()">Enviar</button>


Código Javascript:
Ver original
  1. function validar(){
  2.     var valor = document.getElementById("texto").value;
  3.   if(valor == "http://google.com") alert('Válido')
  4.   else if(valor == "http://fb.com/ejemplo") alert('Válido')
  5.   else if(valor == "htpp://www.dropbox.com/dvubsnivhbsvsdvsdv") alert('Válido')
  6.   else alert('Ingrese una URL válida')
  7. }

Si quieres validar si la URL es válida (cualquier URL del mundo) puedes usar expresiones regulares

Expresiones regulares

Expresiones regulares
  #3 (permalink)  
Antiguo 10/02/2016, 12:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Permitir solo algunos dominios en un input

Crea un array con todos los elementos que quieras . Después recorre el array con un ciclo y compara cada elemento con el valor del control input
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 10/02/2016, 14:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Permitir solo algunos dominios en un input

gracias por sus respuestas, sí, sus respuestas son correctas en ese contexto, pero no es a lo que me refería.

Yo decía que deseo que cualquier link de los dominios mencionados antes pueda ser válido, no solo los links que puse, por ejemplo, si digo que "http://google.com" y "http://fb.com" son válidos, entonces a la hora de verificar el input si dentro del input hay un "http://fb.com/upsajd" entonces sí es válido, pero si hubiera otro dominio que no es de google o de fb entonces no es válido...


voy a probar leyendo las recomendaciones de Zedge1505

gracias.
  #5 (permalink)  
Antiguo 11/02/2016, 10:11
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Permitir solo algunos dominios en un input

En lugar de comparar puedes usar indexOf() de tal modo que obtendrás la posición de la concurrencia del dominio . En caso contrario, no hay concurrencia, obtendrás -1.
Otra opción que puede serie válida es usar ajax cross domain
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 12/02/2016, 03:12
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Permitir solo algunos dominios en un input

buena recomendación,

pero encontré la solución de esta forma

Código HTML:
<script>
	


	function validarUrl(link)
{
    $sw = link.match(/\b(mega\.nz|mega\.co\.nz|dropbox\.com)\b/);
    return $sw;
}

alert(validarUrl('https://www.mega.co.nz/#!LdfdfVySAK!yf-dfgdfgdfgfdgdgdfgfdg'));
</script> 
eso me devuelve un string si hay similitud y si no entonces devuelve null, en las pruebas que he hecho funciona muy bien.

gracias, tema solucionado.

también encontré una solución vía php, la cual es más fácil porque devuelve un boleano.

Etiquetas: dominios, formulario, funcion, input, permitir
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 05:11.