0

正直なところ、値を整数に変換するだけでよいと思いますが、さまざまなことを試してみたところ、「オブジェクトに対してこのアクションを使用できない」という行に沿って「NaN」または何かを取得し続けました。replace を使用して % を削除したり、単純に数学を適用したりしたいと考えています。String と parseInt() を試して変換しようとしましたが、NaN を取得しました。

この例では、「10%」または「20%」という警告ボックスが表示されます...ユーザーが入力したものは何でも

thisInvoiceDiscount = $("#clientSearchInvoiceDiscountTextbox").val(); 
percentPresent = thisInvoiceDiscount.indexOf("%"); 
if (percentPresent == "-1") { 
} 
else { 
  alert (thisInvoiceDiscount);
  //I can't seem to do anything with thisInvoiceDiscount here
}

更新:最初の応答を使用:

thisInvoiceDiscount = $("#clientSearchInvoiceDiscountTextbox").val();
var numberOnly = $("#clientSearchInvoiceDiscountTextbox").val().replace(/\D/g, '');
percentPresent = thisInvoiceDiscount.indexOf("%");
if (percentPresent == "-1") {
}
else {
    var integerValue =  parseInt(numberOnly, 10);
    alert (integerValue);
}
4

1 に答える 1

3
var numberOnly = 
        $("#clientSearchInvoiceDiscountTextbox").val().replace(/\D/g, '');

これにより、文字列から数字以外のすべての文字が削除されます。

var integerValue =  parseInt(numberOnly, 10);

これにより、文字列が整数に解析されます。

もちろん、標識regexをより具体的にターゲティングすることもできます。%

var numberOnly = 
        $("#clientSearchInvoiceDiscountTextbox").val().replace(/%/, '');

または、これが文字列の最後の文字である場合にのみregex削除します。%

var numberOnly = 
        $("#clientSearchInvoiceDiscountTextbox").val().replace(/%$/, '');

ライブデモ (アップデートに基づく)


結果と比較するときは、文字列よりも整数と比較する方がよいことに注意しindexOfてください。コードに(非常に小さい...)ブーストが追加され、次のコードと比較してもコードはブレーキをかけません。===

于 2012-05-24T00:08:36.723 に答える