如何从含货币标识的数组中提取纯数字并存储为新数组
提取数组中的数字
首先注意:你给出的原数组存在语法错误,元素需要用引号包裹为字符串,正确定义应为:
var price = ["Rs 299", "Rs 499", "Rs 899", "Rs 199"];
下面提供两种简单的方法提取数字组成新数组:
方法一:正则表达式匹配(通用型)
利用正则匹配字符串中的数字部分,结合map()遍历转换:
var numericPrices = price.map(item => { // 匹配连续数字,转为整数 const numMatch = item.match(/\d+/); return numMatch ? parseInt(numMatch[0], 10) : null; });
- 优势:即使字符串格式有细微变化(比如"Rs.299"或"Rs 299"多空格),依然能正确提取数字
- 异常处理:如果元素中没有数字,会返回
null,可根据需求调整返回值
方法二:按空格分割(依赖固定格式)
如果确定所有元素都是"Rs + 空格 + 数字"的格式,可以直接分割字符串:
var numericPrices = price.map(item => parseInt(item.split(" ")[1], 10));
- 优势:代码更简洁
- 局限:格式变化(比如无空格、多空格)会导致提取失败
执行后numericPrices就是你需要的[299, 499, 899, 199]。
内容的提问来源于stack exchange,提问作者Shivraj Roy
相关产品推荐
相关产品推荐

