匹配字符串并使用打字稿返回匹配的字符串

时间:2019-04-12 13:08:59

标签: typescript

问题

我有一些包含此符号“#”的字符串,我想在此符号后获取数字。例如:

A)Lorem Ipsum#1234->#1234

B)Lorem#234 Ipsum Dolor->#234

我尝试过的事情

    getTicketID(title: string): string {
    const re = /#(\d+)/g;
    return title.match(re); 
}

但是它不起作用,因为我无法返回字符串:

类型'RegExpMatchArray'不能分配给类型'string'。

2 个答案:

答案 0 :(得分:1)

它正在返回数组。 你这样改变

getTicketID(title: string): string[] {
const re = /#(\d+)/g;
return title.match(re); 
}

然后打印数组

this.getTicketID(this.data).forEach(value=>console.log(value));

答案 1 :(得分:0)

您应该只返回第一个捕获组。另外,您可以检查是否有匹配项,如果没有匹配项,则返回默认值,例如空字符串或您喜欢的任何内容。

const s = "Lorem #234 Ipsum Dolor";

function getTicketID(title: string): string {
  const m = title.match(/#(\d+)/);
  return m ? m[1] : "default value"; 
}

console.log(getTicketID(s));