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

http://jsfiddle.net/qt3RW/ シンプルな入力ボックス: </p>

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

パーサーは 'Is # greater than #' (# は数字) を検出し、次の数字に警告します。

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 に答える
0

match メソッドの出力は文字列の配列なので、数値ではなく文字列を比較していると思います。数値を比較する前に、これを試してください。

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

そして、num1 と num2 を比較します。

于 2012-06-12T19:32:27.447 に答える
0

次の 2 つの方法で数値を操作したいようです。

1) 個々のキャラクターを参照したい。

2) 数値を別の数値と比較して、どちらかが大きいかどうかを確認します。

という文字列があるinput場合、関数parseInt(input, 10)を使用して文字列からその文字列で表される数値に変換できます。

最初の 2 文字だけを取得する場合は、関数を使用できますsubstring

覚えておくべき重要なことは、コンピューターにとって、文字列 '12345' と数値 12345 は完全に異なるということです。コンピュータには、それぞれに対して実行するまったく異なる一連の操作があります。

ifまた、@albin は、ステートメントの後にセミコロンを置くのが間違っていることを指摘するのは正しいです。

于 2012-06-12T19:26:20.207 に答える