Javascript 使用通过(“输入”)传入的百分比时出现问题。val()
老实说,我想我只需要将值转换成整数,但我已经尝试了很多方法,不断得到“NaN”或类似“不能在对象上使用此操作”的内容。我想做一些事情,比如使用replace删除%或者简单地对其应用数学。我尝试了String和parseInt()转换,但只得到了NaN 这个例子给了我一个警告框,上面写着“10%”或“20%”,无论用户在其中键入什么Javascript 使用通过(“输入”)传入的百分比时出现问题。val(),javascript,jquery,Javascript,Jquery,老实说,我想我只需要将值转换成整数,但我已经尝试了很多方法,不断得到“NaN”或类似“不能在对象上使用此操作”的内容。我想做一些事情,比如使用replace删除%或者简单地对其应用数学。我尝试了String和parseInt()转换,但只得到了NaN 这个例子给了我一个警告框,上面写着“10%”或“20%”,无论用户在其中键入什么 thisInvoiceDiscount = $("#clientSearchInvoiceDiscountTextbox").val(); percentPrese
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);
}
这将从字符串中删除所有非数字字符
var integerValue = parseInt(numberOnly, 10);
这将把字符串解析为整数
当然,您可以使regex
针对%
符号更加具体:
var numberOnly =
$("#clientSearchInvoiceDiscountTextbox").val().replace(/%/, '');
或者,仅当它是字符串中的最后一个字符时,使用此regex
删除%
:
var numberOnly =
$("#clientSearchInvoiceDiscountTextbox").val().replace(/%$/, '');
(基于更新)
请注意,当与
索引进行比较时,与整数进行比较比与字符串进行比较更好。如果与=
进行比较,它会给代码增加一个(非常小的…)提升,并且代码不会停止
这将从字符串中删除所有非数字字符
var integerValue = parseInt(numberOnly, 10);
这将把字符串解析为整数
当然,您可以使regex
针对%
符号更加具体:
var numberOnly =
$("#clientSearchInvoiceDiscountTextbox").val().replace(/%/, '');
或者,仅当它是字符串中的最后一个字符时,使用此regex
删除%
:
var numberOnly =
$("#clientSearchInvoiceDiscountTextbox").val().replace(/%$/, '');
(基于更新)
请注意,,与索引进行比较时,最好与整数进行比较,而不是与字符串进行比较。如果百分比不是整数,它会给代码增加一个(非常小的…)提升,并且如果与====
或parseFloat()
进行比较,代码不会停止。未捕获类型错误:Object[Object Object Object]没有方法'indexOf'@epascarello。你说得对,他在问题中写了integer
。无论如何,你的评论将保留。。。thanksorparseFloat()
如果百分比不是整数。未捕获类型错误:对象[Object Object]没有方法'indexOf'@epascarello。你说得对,他在问题中写了integer
。无论如何,你的评论将保留。。。感谢您在声明变量时应该使用var
。但有时我需要全局使用它们,在这个函数之外,您混合了这两个代码,请替换它。我的代码应该会处理所有问题,它将删除%
后缀,您不需要检查它的索引。@gdoron啊,但我需要检查%,因为用户可以输入美元金额或%…我需要检测它是哪一个…我只是删除了额外的代码,因为它不相关,但if(percentPresent=“-1”)中有一些内容{},例如example@gdoron是的,但是在我删除“%”符号之前,我仍然需要检测它是a%还是数字。当你声明变量时,你应该使用var
。但有时我需要全局使用它们,在这个函数之外,如果你混合了这两个代码,请替换它。我的代码应该会处理所有问题,它将删除%
后缀,您不需要检查它的索引。@gdoron啊,但我需要检查%,因为用户可以输入美元金额或%…我需要检测它是哪一个…我只是删除了额外的代码,因为它不相关,但if(percentPresent=“-1”)中有一些内容{},例如example@gdoron是的,但在删除“%”符号之前,我仍然需要检测它是%还是数字