剑指Offer——把字符串转换成整数(JS实现)

简介: 剑指Offer——把字符串转换成整数(JS实现)

题目描述

image.png

image.png

解题思路

  • 本题需要考虑的一是数值是由范围的,其次就是正则表达式怎么写,当然本题也可以不使用正则表达式,但是本次题解采用的是正则,因为这样简单易懂。
  1. 首先去除字符串两侧的空格。
  2. 使用正则表达式匹配出带正负号或者不带的数字部分。
  3. 判断匹配的是否存在,存在就继续判断是否在数值范围内,反之则返回0。

解题代码

var strToInt = function(str) {
    // 首先去除字符串两侧空格
    str = str.trim();
    // 使用正则表达式匹配出数字部分
    let num = str.match(/^[+-]?\d+/);
    if (!num) {
        return 0;
    } else {
        num = num[0];
    }
    // 确定数值范围的最大值和最小值
    const min = - (2 ** 31);
    const max = (2 ** 31) - 1;
    // 判断num是否超出数值范围
    return num < min ? min : num > max ? max : num;
};

总结(本题给我们的启示思路)

  • 学会去除字符串两侧的空格,trim这个API不会对原字符串产生影响。
  • 学会使用正则表达式。
  • 学会通过三目运算符进行连续的判断。
相关文章
|
存储 JavaScript 前端开发
JS上传文件(base64字符串和二进制文件流)
这篇文章介绍了两种JavaScript文件上传的方法:使用FileReader对象将文件读取为base64字符串上传,以及使用FormData对象以二进制文件流的形式上传文件,包括如何处理文件选择、读取和上传的详细代码示例。
1906 2
JS上传文件(base64字符串和二进制文件流)
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
547 1
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
545 63
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
438 13
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
308 2
|
JavaScript 前端开发
javascript创建字符串
javascript创建字符串
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
262 3
|
JavaScript 前端开发
如何在JavaScript中替换字符串:一篇详细指南
如何在JavaScript中替换字符串:一篇详细指南