0

我根据其他人的建议重写了我昨天提交的代码。我现在有了这个,但似乎仍然无法让它与大于小于一起工作。我可以添加/减去 2 个数字并得到一个有效的答案。但是,我无法让 > < 工作。希望有人可以提供一些额外的帮助,使其保持这种“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;}
4

3 回答 3

0

听起来您想以两种方式操作数字:

1)您想引用单个字符。

2)您想将该数字与另一个数字进行比较,看看一个是否大于另一个。

如果您有一个名为 的字符串input,则可以使用该函数parseInt(input, 10)将其从字符串转换为该字符串表示的数字。

如果您只想获取前两个字符,可以使用该substring函数。

要记住的重要一点是,对于计算机来说,字符串 '12345' 和数字 12345 是完全不同的。计算机有一组完全不同的操作,它将在每个操作上执行。

另外,@albin 正确指出在您的if陈述后放置分号是错误的。

于 2012-06-12T19:26:20.207 回答
0

match 方法的输出是一个字符串数组,所以我认为您不是在比较数字而是比较字符串。在比较您的数字之前尝试这样做。

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

然后比较num1和num2。

于 2012-06-12T19:32:27.447 回答
0

http://jsfiddle.net/qt3RW/ 简单输入框:​​​​​</p>

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

解析器找到 'Is # 大于 #' 其中 # 是数字并警告此数字:

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])
    }
}

​</p>

于 2012-06-12T19:44:56.657 回答