返回列表索引   上一页   下一页
parseInt( ) 把字符串转换成整数

可用性

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( )

    返回列表索引   上一页   下一页