0

我有一串喜欢

AA-12,AB-1,AC-11,AD-8,AE-30

我只想从这个字符串中获取数字喜欢

12,1,11,8,30

我怎样才能使用 JavaScript 得到这个?谢谢 :)

4

4 回答 4

6

使用正则表达式,例如

var numbers = yourString.match(/\d+/g);

numbers然后将是字符串中的数字字符串数组,例如

["12", "1", "11", "8", "30"]
于 2013-07-16T05:13:16.617 回答
1

另外,如果您想要一个字符串作为结果

'AA-12,AB-1,AC-11,AD-8,AE-30'.replace(/[^0-9,]/g, '')
于 2013-07-16T05:14:35.790 回答
1
var t = "AA-12,AB-1,AC-11,AD-8,AE-30";
alert(t.match(/\d+/g).join(','));

工作示例:http: //jsfiddle.net/tZQ9w/2/

于 2013-07-16T05:14:46.610 回答
1

如果这正是您的输入的样子,我将拆分字符串并仅使用数字创建一个数组:

var str = "AA-12,AB-1,AC-11,AD-8,AE-30";
var nums = str.split(',').map(function (el) {
    return parseInt(el.split('-')[1], 10);
});

拆分通过分隔符拆分字符串,在本例中为逗号。返回的值是一个数组,我们将把它映射到我们想要的数组中。在里面,我们将拆分连字符,然后确保它是一个数字。

输出:

nums === [12,1,11,8,30];

我完全没有进行任何完整性检查,因此您可能想根据正则表达式对其进行检查:

/^(\w+-\d+,)\w+-\d+$/.test(str) === true

您可以在任何类似的解析问题中遵循相同的模式。

于 2013-07-16T05:16:31.227 回答