javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JavaScript把"123 asdf"转成数字

在JavaScript中把"123 asdf"转化成数字的几种方法

作者:Never_Satisfied

文章详细介绍了在JavaScript中将字符串转换为数字的几种方法,包括parseInt()、parseFloat()、Number()以及正则表达式,每种方法都有其特点和适用场景,需要的朋友可以参考下

在 JavaScript 中,将字符串 "123 asdf" 转换为数字有几种方法,每种方法的结果和原理不同:

1.parseInt()- 最常用的方法

const str = "123 asdf";
const num = parseInt(str);  // 123

console.log(num); // 123
console.log(typeof num); // "number"

特点:

parseInt("123 asdf");     // 123
parseInt("123.45 asdf");  // 123(整数部分)
parseInt("asdf 123");     // NaN
parseInt("  456 abc");    // 456(忽略空格)

2.parseFloat()- 解析浮点数

const str = "123.45 asdf";
const num = parseFloat(str);  // 123.45

console.log(num); // 123.45

特点:

parseFloat("123 asdf");     // 123
parseFloat("123.45 asdf");  // 123.45
parseFloat("123.45.67");    // 123.45(只识别第一个小数点)
parseFloat("abc 123");      // NaN

3.Number()或一元加号运算符

const str = "123 asdf";

// Number() 函数
const num1 = Number(str);    // NaN

// 一元加号运算符
const num2 = +str;           // NaN

特点:

Number("123");         // 123
Number("123.45");      // 123.45
Number("123 asdf");    // NaN(整个字符串必须都是数字)
+"123";                // 123
+"123 asdf";           // NaN

4.其他转换方法

// Math.floor() - 向下取整
Math.floor("123 asdf");  // NaN

// 双波浪号 ~~ - 按位非(仅整数)
~~"123 asdf";           // 0(转换失败)

// 使用正则表达式提取数字
const str = "123 asdf";
const match = str.match(/\d+/);
const num = match ? parseInt(match[0]) : 0;  // 123

// 使用正则提取数字(包括小数)
const num2 = parseFloat(str.match(/\d+\.?\d*/));  // 123

总结对比

方法输入 "123 asdf"输入 "123.45 asdf"输入 "asdf 123"特点
parseInt()123123NaN提取开头的整数
parseFloat()123123.45NaN提取开头的浮点数
Number()NaNNaNNaN要求整个字符串是数字
+ 运算符NaNNaNNaN同 Number()
正则提取123123.45123灵活但代码较多

推荐使用

对于 "123 asdf" 这类字符串:

  1. 获取开头的整数parseInt(str)
  2. 获取开头的浮点数parseFloat(str)
  3. 安全转换(带默认值)
function safeParseInt(str, defaultValue = 0) {
    const num = parseInt(str);
    return isNaN(num) ? defaultValue : num;
}

console.log(safeParseInt("123 asdf"));  // 123
console.log(safeParseInt("abc"));       // 0
console.log(safeParseInt("abc", 100));  // 100

注意事项

parseInt("010");      // 10(现代JS)或8(旧环境)
parseInt("010", 10);  // 10(推荐指定基数)
const num = parseInt("123 asdf");
if (!isNaN(num)) {
    console.log("转换成功:", num);
}

对于 "123 asdf",最合适的方法是 parseInt()parseFloat(),它们会解析字符串开头的数字部分。

到此这篇关于在JavaScript中把"123 asdf"转化成数字的几种方法的文章就介绍到这了,更多相关JavaScript把"123 asdf"转成数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文