Si ese el caso, yo lo haría más genérico.
En una situación real, en tu formulario, que necesidad habría de que los usuarios escribiesen http:// ó ftp:// ó https:// más que para ingresar una url?, idem para que escriban
[email protected] sin importar mucho si son correos ó url válidas.
Distinto sería si vos si permitieses que se escriban urls y emails y quizieras validar si lo hicieron correctamente. Por tu comentario entiendo que tu idea es que ni las escriban
Entonces
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript">
function validar(){
var mensaje = document.getElementById('mensaje').value;
var formato_email = /\w+@\w+\.\w+/;
var url = mensaje.match(/(ftp|http|https):\/\//gi);
var v_email = formato_email.test(mensaje);
if((v_email == true)||(url != null)){
alert('hay email ó url');
return false;
}
/// Si no hubo ningún error, el form se procesa
alert('proceso');
}
<form action="#" onsubmit="return validar();"> <input type="submit" class="boton" value="enviar" />
usas como dije, 2 expresiones muy genéricas
Saludos