我根据其他人的建议重写了我昨天提交的代码。我现在有这个,但似乎仍然无法让它工作大于不到。我可以添加/减去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;}
答案 0 :(得分:0)
听起来你想以两种方式操纵一个数字:
1)你想引用个别角色。
2)您想要将该数字与另一个数字进行比较,看看是否有一个数字大于另一个数字。
如果您有一个名为input
的字符串,那么您可以使用函数parseInt(input, 10)
将其从字符串转换为该字符串所代表的数字。
如果您只想获得前两个字符,可以使用substring
函数。
要记住的重要一点是,对于计算机,字符串'12345'和数字12345完全不同。计算机具有完全不同的操作集,它们将在每个操作上执行。
另外,@ albin指出在if
语句后添加分号是错误的。
答案 1 :(得分:0)
match方法的输出是一个字符串数组,所以我认为你不是比较数字而是字符串。在比较你的数字之前尝试这样做。
var num1 = parseInt( numbersInString[0], 10 );
var num2 = parseInt( numbersInString[1], 10 );
然后比较num1和num2。
答案 2 :(得分:0)
http://jsfiddle.net/qt3RW/ 简单的输入框:
<input id="input1" value="Is 6 greater than 5"></input>
Parser发现'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])
}
}