如何使用Javascript从字符串中提取数字?

时间:2013-11-14 22:35:01

标签: javascript

如何使用Javascript从字符串中提取数字? 下面的测试用例:

string s = 1AA11111 
string s1= 2111CA2

string s result  = 111111 
string s1 result = 211112

我的代码无效:

var j = 0;
var startPlateNums = "";
while (j <= iStartLength && !isNaN(iStartNumber.substring(j, j + 1))){
          startPlateNums = startPlateNums + iStartNumber.substring(j, j + 1);
           j++;
} 

3 个答案:

答案 0 :(得分:4)

简单的正则表达式

s.replace(/[^\d]/g, '')

或如评论中所述

s.replace(/\D/g, '')

http://jsfiddle.net/2mguE/

答案 1 :(得分:2)

你可以这样做: 的编辑:

var num = "123asas2342a".match(/[\d]+/g)
console.log(num);
// THIS SHOULD PRINT ["123","2342"]

答案 2 :(得分:1)

正则表达式替换可能是最简单,最好的方法:

'2111CA2'.replace(/\D/g, '');

然而,这是另一种不使用正则表达式的替代方法:

var s = [].filter.call('2111CA2', function (char) {
    return !isNaN(+char);
}).join('');

或者使用简单的for循环:

var input = '2111CA2',
    i = 0,
    len = input.length,
    nums = [],
    num;

for (; i < len; i++) {
    num = +input[i];
    !isNaN(num) && nums.push(num);
}

console.log(nums.join(''));