下面是一个例子:
var str = "3,000, 2000, 1,000"
或
var str = "3,000, 2000 and 1,000"
我想用正则表达式str.match(/\d+/g)来提取3000, 2000, 1000但是结果是错误的:
str.match(/\d+/g)
3000, 2000, 1000
['3', '000', '2000', '1', '000']
有谁能帮忙吗?谢谢
ruarlubt1#
我的回答:
const str = "3,000, 2000, 1,000" const patt = /(\d+(\,)?)+\d*/g; const res = (str.match(patt)).map(ele=> +ele.replace(/\,/g, "")) console.log(res)
gcmastyq2#
不需要正则表达式,只要按" "拆分,从结果中删除所有,并将其解析为一个数字即可。
" "
,
var str = "3,000, 2000, 1,000"; var nums = str.split(" ").map(x => +x.replaceAll(",", "")) console.log(nums)
2条答案
按热度按时间ruarlubt1#
我的回答:
gcmastyq2#
不需要正则表达式,只要按
" "
拆分,从结果中删除所有,
并将其解析为一个数字即可。