2012-06-12 171 views
0

我根據其他人的建議重寫了我昨天提交的代碼。我現在有這個,但仍然似乎無法得到它比大於小於。我可以添加/減去2個數字並獲得有效答案。然而,我無法使用> <。希望有人可以提供一些額外的幫助,將其保留在「If語句」格式中。Javascript大於或小於

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

你如何分成單詞;第一個條件已經成立? – Bergi

+5

你在if語句後面加了一個分號,使它們或多或少無用 – albin

+0

我會重新思考整個邏輯 - 儘量保持DOM管理和邏輯分離,否則隨着時間的推移會變得非常複雜(否則會讓事情變得更加簡單調試);) – Peter

回答

0

這聽起來像你想操縱兩種方式號碼:

1)你想指的是單個字符。

2)你想比較號碼與另一個號碼,看看是否大於另一個。

如果您有一個名爲input的字符串,則可以使用函數​​將其從字符串轉換爲該字符串表示的數字。

如果您只想得到前兩個字符,您可以使用substring函數。

要記住的重要一點是,在計算機中,字符串'12345'和數字12345是完全不同的。計算機有一組完全不同的操作,它將在每個操作上執行。

此外,@albin是正確的指出在您的if語句後加分號是錯誤的。

+0

基於CarlesAndres建議的更改 是不是我在做什麼? –

0

匹配方法的輸出是一個字符串數組,所以我認爲你不是比較數字而是字符串。在比較你的號碼之前試着做這個。

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

然後比較num1和num2。

+0

@ CarlesAndres 嘗試下面它對我有意義,但仍然沒有去。 (input.search(「what is more」)!= -1)&&(input.search(/ \ d {1,10} /)!= - 1)&&(input.search(/ \ d { 1)}} {= 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 +「大於」+ num2 +「」; (num1 = num2) document.result.result.value =「兩個數字相等」; 返回true;} –

+0

您應該調試。爲什麼不將numericInString輸出到控制檯,並設置一個斷點來檢查賦值後的值?我建議你花一些時間學習如何在瀏覽器中做到這一點。如果你不使用谷歌瀏覽器,試試吧,關於你的谷歌瀏覽器的信息有很多。 – CarlesAndres

0

http://jsfiddle.net/qt3RW/ 簡單的輸入框:

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

解析器發現 '是比##更大',其中#是數字,並提醒該位:

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