是否有可能以某种方式返回0而不是NaN
在JavaScript中解析值时?
如果空字符串parseInt
返回NaN
.
是否可以在JavaScript中执行类似的操作来检查NaN
?
var value = parseInt(tbb) == NaN ? 0 : parseInt(tbb)
Run Code Online (Sandbox Code Playgroud)
或者可能有另一个函数或jQuery插件可能做类似的事情?
我有一个文本字段,允许用户输入他们的年龄.我正在尝试使用JavaScript在此字段上进行一些客户端验证.我已经有了服务器端验证.但是,我似乎无法验证用户输入的实际整数.我目前正在尝试以下代码:
function IsValidAge(value) {
if (value.length == 0) {
return false;
}
var intValue = parseInt(value);
if (intValue == Number.NaN) {
return false;
}
if (intValue <= 0)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我已将单个字符输入到文本框中,如"b",此方法返回true.如何确保用户只输入整数?
谢谢
为什么这种行为parseInt()
与parseFloat()
?之间存在差异?
我有一个包含08
在其中的字符串.
当我写这段代码时:
alert(hfrom[0]);
alert(parseInt(hfrom[0]));
alert(parseFloat(hfrom[0]));
Run Code Online (Sandbox Code Playgroud)
生成以下输出:
08
0
8
Run Code Online (Sandbox Code Playgroud)
为什么parseInt
和parseFloat
在这种情况下返回两个不同的结果?
在IE8中发现一个奇怪的事情:
parseInt('01')
//1
parseInt('02')
//2
parseInt('03')
//3
/*...*/
parseInt('07')
//7
parseInt('08')
//0 !!!
parseIntr('09')
//9 ok
Run Code Online (Sandbox Code Playgroud)
有人可以澄清吗?
某个数字的前导零,将数字转换为某种未知数字格式.例如 :
017
正在转变为 15
037
正在转变为 31
还发现在末尾具有8 0r 9的数字保持相同,例如:
018
是 18
038
是 38
o59
是 59
我发现的另一件事是
对于每个下一个10的范围,转换值和实际值之间的差值增加2
例如 :
对于范围 00-09
差异, 0
即07的值将是7,04将是4
对于范围 010-019
差异, 2
值为017将为15,013将为11
对于范围 020-029
差异, 4
值027将为23,021将为17
等等..
这是一个测试的snipet http://jsfiddle.net/rajubera/BxQHF/
我不明白为什么会发生这种情况?
请帮我如何从前导零的数字中得到正确的十进制数?
这是一个小型JavaScript.我从这个功能中得到了意想不到的结果.020*2给出32而不是40.有谁知道如何解决这个问题?
function myFunction(a, b) {
return a * b;
}
document.write('04 * 03 = ');
document.write(myFunction(04, 03)); //Result 12, correct
document.write(' << Correct <br/>020 * 02 = ');
document.write(myFunction(020, 02)); //Result 32, wrong - expected result 40
document.write(' << Expected 40 here');
Run Code Online (Sandbox Code Playgroud)
Java的ParseInt方法将很乐意解析前导零提供的十进制值,而不会抛出异常,剥离零:
int value = Integer.parseInt("050", 10);
Run Code Online (Sandbox Code Playgroud)
将导致整数值50.
但是,我有一个应用程序需要这样的字符串作为无效输入被拒绝.到目前为止,我对该问题的解决方案是将解析后的整数转换回字符串,并比较原始/解析字符串的长度,以查看是否已剥离任何字符,例如:
String original = "050";
value = Integer.parseInt( "050", 10);
String parsed = Integer.toString(value);
if (original.length() != parsed.length()) {
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但感觉有点hacky.是否有更好的方法来检测和处理前导零?
为什么
parseInt("09")
Run Code Online (Sandbox Code Playgroud)
回来0
但是
parseInt("07")
Run Code Online (Sandbox Code Playgroud)
回来7
?
所以,如果我有以下字符串:
'(01) Kyle Hall - Osc (04) Cygnus - Artereole (07) Forgemasters - Metalic (10) The Todd Terry Project - Back to the Beat (14) Broken Glass - Style of the Street'
Run Code Online (Sandbox Code Playgroud)
我可以查看字符串并将字符串中的任何数字推送到一个数组,如下所示:
[01,04,07,10,14]
Run Code Online (Sandbox Code Playgroud)