前几天我发布了一个类似的问题,但我不太明白这个原则。是否有解释替换函数与正则表达式相结合的良好资源?
无论如何,现在我遇到以下问题:以@
开头的字符串应放在链接中。因此@test
应替换为<a href="/test"> @test </a>
。
此外,这些规则应适用:
/g
放在正则表达式后面吗?这是我到目前为止所做的:
value = "is @test";
var text = value.replace(/^.*(@)(\w+).*$/, "<a href='$2'>$1$2</a>");
我的输出
<a href="test">@test</a>
修改 该链接现在正在运行。但是,&#34;这个词是&#34;不见了。
答案 0 :(得分:0)
执行.replace()
时,您需要在RegExp中包含您要替换的所有字符,并保留您要用括号保留的字符。
var test = 'is @test';
function makeAt(string){
return string.replace(/^.*(@)(\w+).*$/, "<a href='$2'>$1$2</a>");
}
console.log(makeAt(test));
&#13;
答案 1 :(得分:0)
您需要捕获环境文本:
value = "is @test or what";
var text = value.replace(/^(.*)@(\w+)(.*)$/, "$1<a href='$2'>@$2</a>$3");
或者只是捕获更少:
var text = value.replace(/@(\w+)/, "<a href='$1'>@$1</a>");