当前位置:首页 > JavaScript

js 实现parseint

2026-03-14 15:48:08JavaScript

JavaScript 实现 parseInt

在 JavaScript 中,parseInt 是一个用于将字符串转换为整数的内置函数。以下是其实现原理和使用方法的详细说明。

基本语法

parseInt(string, radix);
  • string:需要解析的字符串。
  • radix(可选):表示字符串的基数(进制),范围是 2 到 36。默认为 10。

实现逻辑

  1. 忽略前导空格
    解析时会跳过字符串开头的空格字符,直到找到第一个非空格字符。

  2. 处理符号
    如果第一个非空格字符是 +-,会将其作为符号处理。

  3. 解析数字
    从第一个有效字符开始,解析连续的数字字符(根据 radix 决定有效字符范围),直到遇到非数字字符为止。

  4. 基数处理

    • 如果未指定 radix 或为 0,JavaScript 会根据字符串前缀推断基数:
      • 0x0X 开头:基数为 16(十六进制)。
      • 0 开头:基数为 8 或 10(部分环境可能不同)。
      • 其他情况:基数为 10。
    • 如果 radix 不在 2 到 36 之间,返回 NaN

自定义实现示例

以下是一个简化的 parseInt 自定义实现:

js 实现parseint

function customParseInt(str, radix = 10) {
  // 检查基数是否有效
  if (radix < 2 || radix > 36) return NaN;

  // 正则匹配有效字符
  const regex = new RegExp(`^[\\s]*([+\\-]?)([0-${Math.min(radix - 1, 9)}a-${String.fromCharCode(86 + radix)}A-${String.fromCharCode(54 + radix)}]+)`);
  const match = str.match(regex);

  if (!match) return NaN;

  const [, sign, digits] = match;
  let result = 0;

  for (let i = 0; i < digits.length; i++) {
    const char = digits[i].toLowerCase();
    let value;

    if (/[0-9]/.test(char)) {
      value = parseInt(char, 10);
    } else {
      value = char.charCodeAt(0) - 87; // a -> 10, b -> 11, etc.
    }

    if (value >= radix) break; // 无效字符终止解析
    result = result * radix + value;
  }

  return sign === '-' ? -result : result;
}

注意事项

  • 原生 parseInt 会截断小数部分,例如 parseInt("12.34") 返回 12
  • 如果字符串的第一个非空格字符不是数字或符号,返回 NaN
  • 某些历史实现中,parseInt("08") 可能返回 0(八进制解析),但现代环境通常按十进制处理。

示例用法

console.log(customParseInt("123"));      // 123
console.log(customParseInt("FF", 16));   // 255
console.log(customParseInt("1010", 2));  // 10
console.log(customParseInt("abc"));      // NaN

标签: jsparseint
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…