【发布时间】:2013-07-14 03:46:04
【问题描述】:
我有一串喜欢
AA-12,AB-1,AC-11,AD-8,AE-30
我只想从这个字符串中获取数字
12,1,11,8,30
我怎样才能使用 JavaScript 获得这个?谢谢:)
【问题讨论】:
标签: javascript string
我有一串喜欢
AA-12,AB-1,AC-11,AD-8,AE-30
我只想从这个字符串中获取数字
12,1,11,8,30
我怎样才能使用 JavaScript 获得这个?谢谢:)
【问题讨论】:
标签: javascript string
使用正则表达式,例如
var numbers = yourString.match(/\d+/g);
numbers 然后将是字符串中的数字字符串数组,例如
["12", "1", "11", "8", "30"]
【讨论】:
numbers.join(',') 轻松转换为逗号分隔的字符串
如果你想要一个字符串作为结果
'AA-12,AB-1,AC-11,AD-8,AE-30'.replace(/[^0-9,]/g, '')
【讨论】:
var t = "AA-12,AB-1,AC-11,AD-8,AE-30";
alert(t.match(/\d+/g).join(','));
【讨论】:
如果这正是您的输入的样子,我会拆分字符串并仅使用数字创建一个数组:
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
您可以在任何类似的解析问题中遵循相同的模式。
【讨论】: