typescript 如何根据跟在另一个字符后面的字符拆分字符串?

vsaztqbk  于 2023-02-05  发布在  TypeScript
关注(0)|答案(1)|浏览(157)

我有一个字符串,格式如下:

"MyTeam/running#324242-BC2_asd213"

我怎样才能得到字符串中-之前的部分。也就是说,我只需要得到MyTeam/running#324242。我希望确保我按照#之后第一个出现的-进行拆分,因为有时-也可以存在于#之前。

"MyTeam/walking-dead#324242"

在上面的例子中,我希望得到字符串MyTeam/walking-dead#567657
我目前的解决方案:

.substring(0, vfi.lastIndexOf("-"));

但是想知道是否有可能以“#”为基础,这样解会更准确

y4ekin9u

y4ekin9u1#

你可以使用正则表达式:

const regex = /^([^#]+[^-]*).*$/;

function extractAfterHashButBeforeDash(value: string) {
  return value.replace(regex, '$1');
}
  • ^表示字符串的开始
  • [^#]+将匹配#以外的一个或多个字符
  • [^-]*将匹配-以外的零个或多个字符
  • .*将匹配零个或多个字符
  • $表示字符串的结尾

圆括号捕获了您感兴趣的匹配,以便可以将其用于替换(使用$1)。

相关问题