JavaScript中从字符串提取数字并赋值变量的方法
JavaScript从字符串提取数字并赋值变量
以下是几种实用的实现方式,针对你给出的24:380这类格式的字符串:
方法1:按分隔符分割+解构赋值(适合固定分隔符场景)
直接通过冒号分割字符串,将分割后的字符串转为数字后,用解构赋值直接分配给变量:
const str = '24:380'; // 分割后转数字,同时解构赋值 const [num1, num2] = str.split(':').map(Number); console.log(num1); // 输出24(数字类型) console.log(num2); // 输出380(数字类型)
方法2:正则匹配(适合复杂字符串场景)
如果字符串中可能包含其他无关字符,用正则匹配所有连续数字序列,再提取赋值:
const str = '24:380'; // 匹配所有连续数字,转为数字数组后解构 const [num1, num2] = str.match(/\d+/g).map(Number); console.log(num1); // 24 console.log(num2); // 380
注:/\d+/g会匹配所有连续的数字字符,即使字符串是"abc24-def:380xyz"这类格式,也能正确提取出24和380。
方法3:手动分割+类型转换(适合需要额外校验的场景)
如果需要对分割后的内容做格式校验,可分步处理:
const str = '24:380'; const parts = str.split(':'); // 先校验分割后的格式是否符合预期 if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) { const num1 = parseInt(parts[0], 10); // 用parseInt需指定基数10,避免八进制解析问题 const num2 = Number(parts[1]); // Number()也可直接转换 console.log(num1, num2); } else { console.log('字符串格式不正确,无法提取数字'); }
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

