Sólo unas cositas:
Cita:
Iniciado por Perr0 <!-- ... -->
<script>
function calc(){
var a=document.getElementById("num1")
var b=document.getElementById("num2")
var c=document.getElementById("num3")
var d=document.getElementById("num4")
var e=document.getElementById("num5")
ereg=/\d$/ //sólo numeros
if(!a.value.match(ereg)) {alert("sólo numeros en a\"A\"");a.focus();return false}
if(!b.value.match(ereg)) {alert("sólo numeros en a\"B\"");b.focus();return false}
if(!c.value.match(ereg)) {alert("sólo numeros en a\"C\"");c.focus();return false}
if(!d.value.match(ereg)) {alert("sólo numeros en a\"D\"");d.focus();return false}
if(!e.value.match(ereg)) {alert("sólo numeros en a\"E\"");e.focus();return false}
formula1=a.value-b.value
formula1=formula1/7
formula2=c.value*1+d.value*1
formula2=formula2/5
var ress=(formula1-formula2)*e.value
document.getElementById("res").innerHTML=ress
}
</script>
<!-- ... -->
El código es bastante correcto, pero si no te importa te comento algunas líneas (las que están en rojo):
#1: Eso es un poco cierto, pero no del todo. Lo que le estás pidiendo es que al final de la cadena haya un número, por tanto hola1 pasaría. La solución es
/^\d+$/. También existen otras funciones nativas para comprobar si son números o no,
isNaN() e
isFinite().
#2: La función match() sirve para crear un array con las coincidencias que haya de un patrón en una cadena. Por tanto, cuando lo usas en el if(), funciona si hay coincidencias porque al no estar vacío el array pasa, pero es más "correcto" usar
test(), que devuelve un booleano.
#3: Así también funciona, pero es más fácil poner
alert('sólo numeros en "B"'), ¿no?
#4: Cuando vas a sumar, restar, multiplicar o dividir una variable por ella misma, se puede poner como variable = variable + 2, pero, al menos para mí es más cómodo usar
+=. Hay gente a la que le gusta más usar la primera forma porque es más clásica, pero te lo comento por si no lo sabías.
#5: 1*1=1, 2*1=2, 3*1=3,...
n*1=n. Es inútil multiplicar un número por 1, basta con que sumes uno y otro.
#6: Como en
#4 (
/=).
Saludos (: