字符串替换搜索和替换。如何做搜索命中的子串

时间:2018-01-26 13:26:31

标签: javascript string typescript replace

我有这个方法,它会在每次出现@something时插入一个锚标记。 锚标记包含指定子URL的href。

这是代码

private generateAnchors(content: string) {
    return content.replace(/(@[^ @]+)/ig, '<a href="/home/user/$1">$1</a>');
}

这会输出@something的每次出现并生成锚标记。但是我需要删除&#39; @&#39;第一次插入$ 1时标记,但不是最后一次。如何在第一次插入$ 1时基本上执行.substring(1)?

2 个答案:

答案 0 :(得分:3)

你可以划分你的正则表达式,以便有两个元素:@和其他

private generateAnchors(content: string) {
    return content.replace(/(@)([^ @]+)/ig, '<a href="/home/user/$2">$1$2</a>');
}

答案 1 :(得分:2)

这应该有用(只捕获没有@的部分并手动将其添加到替换部分):

private generateAnchors(content: string) {
    return content.replace(/@([^ @]+)/ig, '<a href="/home/user/$1">@$1</a>');
}