【发布时间】:2021-08-03 21:11:33
【问题描述】:
我有一个用 html 链接替换文本链接的管道,我将链接放在带有 [innerHtml] 的段落中。 innerHTML 的问题在于,如果有人键入诸如“a”的任何内容,其后面的所有文本都不会显示
这是管道:
导出类 GenerateLinksPipe 实现 PipeTransform { 转换(值:字符串,aClass?:字符串):字符串{
// http://, https://, ftp://
const urlPattern = /\b(?:https?|ftp):\/\/[()a-z0-9-+*&@+#\/%?=+_~_|!:,.;]*[a-z0-9-+&@#\/%=_~_|]/gim;
// www. sans http:// or https://
var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
// Email addresses
var emailAddressPattern = /^[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*/;
return value
.replace(urlPattern, `<a href="$&" target="_blank">$&</a>`)
.replace(pseudoUrlPattern, `$1<a href="http://$2" target="_blank">$2</a>`)
.replace(emailAddressPattern, `<a href="mailto:$&" target="_blank" >$&</a>`);
} }
我需要一种方法来显示段落中的链接,但能够毫无问题地使用“”字符。
【问题讨论】:
-
你能在 stackblitz 中重新创建吗
标签: javascript html angular typescript pipe