1

如何使用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++;
} 
4

3 回答 3

4

一个简单的正则表达式怎么样

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

或如评论中所述

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

http://jsfiddle.net/2mguE/

于 2013-11-14T22:37:50.500 回答
2

你可以这样做: 编辑:

var num = "123asas2342a".match(/[\d]+/g)
console.log(num);
// THIS SHOULD PRINT ["123","2342"]
于 2013-11-14T22:39:28.867 回答
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(''));
于 2013-11-14T22:45:12.147 回答