Javascript Mayor que o menor que

Hice una reescritura del código que envié ayer en base a las sugerencias de otros. Ahora tengo esto, pero parece que todavía no puedo hacer que funcione con mayor que menor que. Puedo sumar/restar los 2 números y obtener respuestas válidas. Sin embargo, no puedo hacer que un > < funcione. Con la esperanza de que alguien pueda ofrecer ayuda adicional para mantenerlo dentro de este formato de "Declaraciones If".

if ((input.search("what is greater")!= -1) && (input.search(/\d{1,10}/)!=-1) && (input.search(/\d{1,10}/)!=-1)) 
{var numbersInString = input.match(/\d+/g); 
var num1 = parseInt( numbersInString[0], 10 ); 
var num2 = parseInt( numbersInString[1], 10 ); 
if (num1 < num2) document.result.result.value = ""+num1+" is less than "+num2+""; 
if (num1 > num2) document.result.result.value = ""+num1+" is greater than "+num2+""; 
if (num1 = num2) document.result.result.value = "Both numbers are equal"; 
return true;}

preguntado el 12 de junio de 12 a las 20:06

¿Cómo se divide en palabras; ¿La primera condición ya es cierta? -

Tiene un punto y coma después del if-afirmaciones que las hacen más o menos inútiles-

Repensaría toda la lógica: intente mantener la administración y la lógica DOM separadas, de lo contrario se vuelve bastante complicado con el tiempo (y hace que las cosas sean más fáciles de depurar);) -

3 Respuestas

Parece que quieres manipular un número de dos maneras:

1) Quiere referirse a los personajes individuales.

2) Quiere comparar el número con otro número y ver si uno es mayor que otro.

Si tienes una cadena llamada input, entonces puedes usar la función parseInt(input, 10) para convertirlo de una cadena al número representado por esa cadena.

Si desea obtener solo los dos primeros caracteres, puede utilizar el substring función.

Lo importante a tener en cuenta es que para la computadora, la cadena '12345' y el número 12345 son completamente diferentes. La computadora tiene un conjunto completamente diferente de operaciones que realizará en cada uno.

además, @albin tiene razón al señalar que poner punto y coma después de su if declaraciones es incorrecta.

Respondido el 12 de junio de 12 a las 20:06

En base al cambio sugerido por CarlesAndres no es eso lo que estoy haciendo? - señor película

El resultado del método de coincidencia es una matriz de cadenas, por lo que creo que NO está comparando números sino cadenas. Intente hacer esto antes de comparar sus números.

var num1 = parseInt( numbersInString[0], 10 );
var num2 = parseInt( numbersInString[1], 10 );

Y luego compare num1 y num2.

Respondido el 12 de junio de 12 a las 20:06

@ CarlesAndres Intenté lo siguiente, tiene sentido para mí, pero aún no puedo. if ((input.search("lo que es mayor")!= -1) && (input.search(/\d{1,10}/)!=-1) && (input.search(/\d{1,10 ,1}/)!=-1)) { var numerosEnCadena = input.match(/\d+/g); var num0 = parseInt(numbersInString[10], 2); var num1 = parseInt(numbersInString[10], 1); if (num2 <num1) document.result.result.value = ""+num2+" es menor que "+num1+""; if (num2 > num1) document.result.result.value = ""+num2+" es mayor que "+num1+""; if (num2 = numXNUMX) document.result.result.value = "Ambos números son iguales"; devuelve verdadero;} - señor película

Deberías depurar. ¿Por qué no envías numbersInString a la consola y estableces un punto de interrupción para verificar su valor después de la asignación? Le sugiero que dedique unos minutos a aprender cómo hacer esto en su navegador. Si no usa Google Chrome, pruébelo, hay mucha información sobre las herramientas de desarrollo en YouTube. - Carles andres

http://jsfiddle.net/qt3RW/ Cuadro de entrada simple:

<input id="input1" value="Is 6 greater than 5"></input>

El analizador encuentra 'Es # mayor que #' donde # es un dígito y alerta a estos dígitos:

var IsStringValid = $("#input1").val().match(/Is \d greater than \d/g);
alert(IsStringValid);
if(IsStringValid){
    var values = $("#input1").val().match(/\d/g);
    for(var i = 0; i < values.length; i++){
        alert(values[i])
    }
}

Respondido el 12 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.