应将该字符串:"https://stackoverflow.com/1 test https://stackoverflow.com/2
“转换为:"<a href="https://stackoverflow.com/1> stackoverflow.com/1 </a> test <a href="https://stackoverflow.com/2"> stackoverflow.com/2 </a>
”
所以需要改变的是:
为了获得更好的url,
<a href>..</a>
,这样你就可以点击它了。到目前为止,我所拥有的:
AngularJS
$scope.convertedBio = function(value) {
var text = value.replace(/(http[^\s]+)/, '<a href="$1">$1</a>');
return text;
}
但是,这将返回"<a href="https://stackoverflow.com/1">https://stackoverflow.com/1</a> test https://stackoverflow.com/2
“
发布于 2018-05-27 21:33:31
function replaceUrls(value) {
var text = value.replace(/(https?:\/\/)(www\.)?([\S]*)/g, '<a href="$1$2$3">$3</a>');
return text;
}
var x = replaceUrls('http://stackoverflow.com/1 test https://www.stackoverflow.com/2')
console.log(x)
// output <a href="https://stackoverflow.com/1">stackoverflow.com/1</a> test <a href="https://www.stackoverflow.com/2">stackoverflow.com/2</a>
发布于 2018-05-27 21:01:07
您需要:
www.
外的整个URL捕获到附加组中<a>
的文本<代码>G29
var text = value.replace(/(https?:\/\/(?:www\.)?([^\s]+))/g, '<a href="$1">$2</a>');
^ ^ ^ ^
1 1 3 2
https://stackoverflow.com/questions/50552348
复制相似问题