假设:
str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6"
。
我的目标是将数字提取到数字数组中,以便对其进行一些计算。
假设每个数字都在0-9范围内,则在C#
中,可以对每个字符使用int.TryParse
方法并将这些数字解析为一个数组。
1)int.TryParse
中的TypeScript
是否等效?
2)假设数字表示形式可能长于1个字符,将这些数字提取到数组中的最佳方法是什么?
谢谢。
答案 0 :(得分:2)
您可以在一个空字符串上split以获取字符数组。然后,您可以filter每个字符删除非数字字符。最后,您map每个都将其转换为数字。
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)