从TypeScript字符串解析一系列数字

时间:2019-03-13 16:51:58

标签: javascript typescript

假设:

str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6"

我的目标是将数字提取到数字数组中,以便对其进行一些计算。

假设每个数字都在0-9范围内,则在C#中,可以对每个字符使用int.TryParse方法并将这些数字解析为一个数组。

1)int.TryParse中的TypeScript是否等效?

2)假设数字表示形式可能长于1个字符,将这些数字提取到数组中的最佳方法是什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以在一个空字符串上split以获取字符数组。然后,您可以filter每个字符删除非数字字符。最后,您map每个都将其转换为数字。

0到9之间的数字

let str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6, Pears - 0"

let nums = str.split('').filter(i => parseInt(i) > -1).map(Number)

console.log(nums)

所有数字

我们可以使用此正则表达式对非单词字符(空格,逗号等)进行分割

/\W/

let str = "Water - 3, Tomatos - 44, Melons - 5, Apples - 666, Pears - 0"

let nums = str.split(/\W/).filter(i => parseInt(i) > -1).map(Number)

console.log(nums)

答案 1 :(得分:1)

您可以使用match

let str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6"

let op = str.match(/\d+/g).map(e=> +e)

console.log(op)