isNaN() javascript,数字加2个逗号
isNaN() javascript, number with 2 commas
我正在使用百分比和setInterval()
所以我有一个
var intervalId;
function randomize(){
var prc = $("#prc").val();
var c = 0 ;
if (!intervalId){
intervalId = setInterval(function(){
c = c + 1;
var attempt = Math.random() * 100;
if (attempt <= prc){
clearInterval(intervalId);
intervalId = false;
$("#attemptnbr").val(c);
}
}, 100);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Percentage : <input type="text" id="prc"/>
<button onclick="randomize()">GO</button>
Number of attempts :<input type="text" id="attemptnbr"/>
但实际上,如果用户将#prc
输入设置为50.345.34
,则attempt <= prc
条件总是返回true
。当这个输入被设置为像50.345.34
这样的数字时,我尝试了console.log(isNaN(prc))
,它总是返回false
。
为什么它被认为是一个数值?
但实际上,如果用户将#prc输入设置为50.345.34,则try <= prc条件总是返回true。
很确定这是观测误差。prc
是一个字符串,然后通过<=
运算符将其隐式转换为数字。这个数字将是NaN
,因为"50.345.34"不能隐式转换,使用NaN
的关系永远不会为真。
然而,它并没有真正改变你想要做的事情,这是将prc
转换为一个数字的目的和测试结果:
var intervalId;
function randomize(){
var prc = +$("#prc").val();
// ^------------------- Note the +, that converts it to a number
if (isNaN(prc)) {
// Handle the invalid input
return;
}
var c = 0 ;
if (!intervalId){
intervalId = setInterval(function(){
c = c + 1;
var attempt = Math.random() * 100;
if (attempt <= prc){
clearInterval(intervalId);
intervalId = false;
console.log(attempt);
}
}, 100);
}
}
我应该注意,如果输入为空,上面可能会做一些你不想要的事情:它将使用值0
,因为+""
是0
。如果你不想这样做,你可以这样做:
var prcString = $.trim($("#prc").val());
var prc = +prcString;
if (!prcString) {
// Handle the fact they didn't enter anything
return;
}
if (isNaN(prc)) {
// Handle the invalid input
return;
}
因为$("#prc").val()
返回一个字符串。50.345.34
是一个字符串。当你比较字符串和数字时,js会比较字符串的长度和数值
相关文章:
- 可以't将几个数字设置为<输入类型=“;数字“>
- 正好包含2个大写字母和3个数字的正则表达式
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 计算HTML表TD中两个数字之间的百分比
- 如何使用 JavaScript 将两个数字相加
- 用于添加两个数字的javascript闭包的用法
- 通过变量在两个数字之间切换
- 在数字字符串的最后两个数字上加上小数
- 在HTML/JavaScript中减去两个数字
- 删除第一个数字块之后的所有数字
- PHP函数识别3个数字中最低的一个并更改其类
- 将文本字段限制为三个数字
- 如何创建一个确定2个数字之间值的函数
- 把两个数字加在一起,得到5+10=510,而不是15
- 敲除:如何对两个数字输入进行双向绑定
- 在 JavaScript 中使用最后两个数字获取年份
- Jquery if 在 2 个数字之间
- regex:如何捕获字符串中的三个数字,而不是字符串的其余部分
- Regex-我需要在第一个数字后面拆分一个字符串
- 编写一个包含一个大写字母和六个数字的javascript表达式