说实话,我认为我只需要将值转换为整数,但我已经尝试了很多东西并继续获得'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);
}
答案 0 :(得分: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
Live DEMO (基于更新)
注意,在与===
结果进行比较时,你最好比一个int数字而不是一个字符串,它会为你的代码添加一个(非常小的......)提升如果您与{{1}}