利用js脚本从一串字符串中提取数字有多种方法,下面大熊博客就来简单的介绍几种常用到的。
js提取字符串中数字的方法
1、利用 parseFloat() 方法提取字符串中的数字。
parseFloat() 方法提取字符串中的数字,有很多的限制。它只能提取开头为数字的字符串中的数字,如果字符串的开头第一个字符为非数字,则会提取失败。
例:
复制
//daxion.cn
console.log(parseFloat('1234daxion.cn')) //1234
console.log(parseFloat('123.4daxion.cn')) // 123.4
console.log(parseFloat('daxion.cn1234')); // NaN
console.log(parseFloat('m123.5')); //NaN
2、JS 使用正则提取字符串中的数字
例1:
可以利用正则的方法将字符串中非数字的字符给去掉,留下的就是数字啦。但要注意的是,如果是要想提取数字中有非整数的部份(带有小数点的数),则无法提取小数点。
复制
//daxion.cn
var num = '1234daxion.cn'.replace(/[^d]/g, "");
console.log(num); //1234
var num2 = '123.daxion.cn'.replace(/[^d]/g, "");
console.log(num2); //1234
var num3 = 'daxion.cn'.replace(/[^d]/g, "");
console.log(num3); //1234
var num4 = 'm123.5'.replace(/[^d]/g, "");
console.log(num4); //1235
例2:
通过上面的示例,我们可以修改一下正则表达式,并使用 match 方法来调用它。
复制
//daxion.cn
var num = '1234daxion.cn'.match(/d+(.d+)?/g);
console.log(num); //['1234']
var num2 = '123.4daxion.cn'.match(/d+(.d+)?/g);
console.log(num2); //['123.4']