我的字符串将始终以以下格式返回,其中数字表示我需要定位的变化变量:
params:string = "a random description here followed by a space and then this #gruser4upload #gruser15cat #gruser23camp"
如何提取数字?
鉴于上面的字符串,我需要实现以下结果:
upload = 4
cat = 15
camp = 23
我尝试使用以下方法,但是由于#gruser
存在于我的所有三个目标中,因此无法使用。
let upload = params.substring(
params.lastIndexOf("#gruser") + 1,
params.lastIndexOf("upload")
);
任何帮助表示赞赏
答案 0 :(得分:4)
使用正则表达式捕获数字,然后捕获字母字符,然后提取每个组:
const params = "a random description here followed by a space and then this #gruser4upload #gruser15cat #gruser23camp";
let match;
const re = /(\d+)([a-z]+)/gi;
while (match = re.exec(params)) {
console.log(match[1] + ' : ' + match[2]);
}