Originariamente inviato da SangueMisto
No purtroppo non mi funziona, richiede la compilazione di tutti e due i campi.

2)Nel campo telefono se lascio il var filtro mi permette l'inserimento di un solo numero.

Ho messo una versione online:
Test

Questo verificato e funzina tutto:
codice:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
<script language="javascript">
function VerifcaForm(){
//regular exp  email numeri
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var num  = /^([0-9])+$/;
//valorizzo le variabili
	var Mail = document.getElementById("email");
	var Tel = document.getElementById("telefono");
//Verifico se almeno un dei 2 campi e compilato 
	if((Mail.value == "") && (Tel.value == "")){
	alert("Attenzione\n\nInserire un indirizzo di posta valido o un recapito telefonico");
	Mail.focus();
	return false;
//Verifico la validita dell'indirizzo email
	}else if((Mail.value != "") && (!Mail.value.match(filter))){
	alert("Attenzione\n\nLa mail "+Mail.value+" risulta formalmente errata!!");
	Mail.focus();
	return false;
//Verifico il recapito telefonico
	}else if((Tel.value != "") && (!Tel.value.match(num))){
	alert("Attenzione\n\nInserire solo numeri senza punti o trattini o barre");
	Tel.focus();
	return false;
	} 
}
</script>
</head>

<body>
<form name="form1" id="form1" method="post" action="" onsubmit="return VerifcaForm();">
  <input name="email" type="text" id="email" />
  <input name="telefono" type="text" id="telefono" />
  <input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>