regex JavaScript使用正则表达式提取字符串中的数字

klr1opcd  于 2023-03-04  发布在  Java
关注(0)|答案(2)|浏览(116)

下面是一个例子:

var str = "3,000, 2000, 1,000"

var str = "3,000, 2000 and 1,000"

我想用正则表达式str.match(/\d+/g)来提取3000, 2000, 1000但是结果是错误的:

['3', '000', '2000', '1', '000']

有谁能帮忙吗?谢谢

ruarlubt

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)
gcmastyq

gcmastyq2#

不需要正则表达式,只要按" "拆分,从结果中删除所有,并将其解析为一个数字即可。

var str = "3,000, 2000, 1,000";
var nums = str.split(" ").map(x => +x.replaceAll(",", ""))
console.log(nums)

相关问题