问题
我有一些包含此符号“#”的字符串,我想在此符号后获取数字。例如:
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'。
答案 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));