Javascript 字符串替换搜索和替换。如何进行搜索点击的子串

Javascript 字符串替换搜索和替换。如何进行搜索点击的子串,javascript,string,typescript,replace,Javascript,String,Typescript,Replace,我有一个方法,它在@something的每次出现时都插入一个锚标记。 锚定标记包含指向指定子URL的href 这是密码 private generateAnchors(content: string) { return content.replace(/(@[^ @]+)/ig, '<a href="/home/user/$1">$1</a>'); } private-generateAnchors(内容:字符串){ 返回内容。替换(/(@[^@]+)/ig',

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

这是密码

private generateAnchors(content: string) {
    return content.replace(/(@[^ @]+)/ig, '<a href="/home/user/$1">$1</a>');
}
private-generateAnchors(内容:字符串){
返回内容。替换(/(@[^@]+)/ig',);
}
这会在每次出现@something时输出一个锚标记,并生成锚标记。但是,我需要删除$1的第一次插入中的“@”标记,而不是最后一次。基本上如何在第一次插入$1时执行.substring(1)?

这应该有效(仅捕获没有
@
的零件,并手动将其添加到替换零件中):

private-generateAnchors(内容:字符串){
返回内容。替换(/@([^@]+)/ig',);
}

您可以将正则表达式除以两个元素:
@
和其余元素

private generateAnchors(content: string) {
    return content.replace(/(@)([^ @]+)/ig, '<a href="/home/user/$2">$1$2</a>');
}
private-generateAnchors(内容:字符串){
返回内容。替换(/(@)([^@]+)/ig';
}

我只想指出,这是可行的,正如公认的答案一样,它实际上运行得更快,捕捉一个永远不会改变的部分是没有用的,它将始终是
@
。。我想是实用主义还是泛型之间的选择;)
private generateAnchors(content: string) {
    return content.replace(/(@)([^ @]+)/ig, '<a href="/home/user/$2">$1$2</a>');
}