可用性
JavaScript 1.0; JScript 1.1; ECMAScript v1
语法
parseInt(s)
parseInt(s, radix)
参数
- s
-
被解析的字符串。
- radix
-
可选的整数参数,表示要解析的数字的基数。如果省略了该参数或者它的值为0,数字将以10为基数来解析。如果它以“Ox”或“OX'’开头,则以16为基数。
如果该参数小于2或大于36,则parseInt()返回NaN。
返回值
解析后的数字,如果字符串s不是以一个有效的整数开头,则返回NaN。在JavaScript
1.0中,当parseInt()不能解析s时,它返回的是0而不是NaN。
描述
方法parseInt()将对字符串s进行解析,并且返回出现在s中的第一个数字(可以具有减号)。当parseInt()在s中遇到的字符不是指定的基数radix可以使用的有
效数字时,解析过程就停止,解析的结果也将在此时返回。如果s的开头是parseInt()不能解析的数字,该函数将返回NaN。可以用函数isNaN()来检测这个
值。
参数radix指定的是要解析成的数字的基数。如果将它设置为10,parseInt()就会
将字符串解析成十进制的数。将它设置为8,那么解析的结果就是八进制(使用0~
7八个数字)的数。将它设置为16,解析的结果就是十六进制(使用数字0—9和字
母A—F表示)的值。radix的值可以是2~36之间的任意一个整数。
如果radix的值为0,或者没有设置radix的值,那么parseInt()将根据字符串s
来判断数字的基数。如果s(在可选的减号后)以0x开头,那么parseInt()将把s
的其余部分解析成十六进制的整数。如果s以0开头,那么ECMAScriptv3标准允许
parseInt()的一个实现把其后的字符解析成八进制的数字或十进制的数字。如果s
以1—9之间的数字开头,parseInt()将把它解析成十进制的整数。
示例
parseInt("19", 10); // 返回 19 (10 + 9)
parseInt("11", 2); // 返回 3 (2 + 1)
parseInt("17", 8); // 返回 15 (8 + 7)
parseInt("1f", 16); // 返回 31 (16 + 15)
parseInt("10"); // 返回 10
parseInt("0x10"); // 返回 16
parseInt("010"); //不明确:返回10或8
Bug
在没有指定radix时,ECMAScriptV3允许实现将以“0”(但不是“OX”或“OX”)
开头的字符串解析为八进制或十进制的数。要避免这种二义性,应该明确指定基数,或只有确定所有要解析的数字都是以“OX”或“OX”开头的十进制数或十六进制数
时,才可以不指定基数。
JavaScript 1.0不支持NaN,所以在这个版本中,当parseInt()不能解析s时,返回0而不是NaN。在JavaScript 1.0中,parseInt()不能区分错误的输入与合法的输入“0”。
参阅
isNaN( ), parseFloat( )
|