如何在锚标记中自动换行文本 URL
How do I automatically wrap text URLs in anchor tags?
我有一个简单的CMS,我为我的一个客户构建了。
这个问题是,他不是通过锚标签发布链接,而是直接将其复制并粘贴到文本编辑器中。
有没有办法使用 JavaScript 将这些链接包装在锚标记中?因此,当页面加载而不是查找时,链接如下:
http://google.com
它看起来像这样
<a href="http://google.com" target="_blank">http://google.com</a>
当用户发布答案/问题的URL时,Stack Overflow实际上会这样做(如果这有助于理解我想要实现的目标)。
你可以尝试一些类似的东西。使用自定义属性(如 data-linkify
)修饰您希望这些替换生效的标记
<div data-linkify>something http://google.com something</div><div linkify>something</div>
现在,在任何元素中执行data-linkify
集合的替换。
$('*[data-linkify]').each(function() {
$(this).html($(this).html().replace(/(?:(https?':'/'/[^'s]+))/m, '<a href="$1">$1</a>'));
});
有一些警告。这根本不是一个很好的正则表达式——它只是匹配从http://
或https://
开始的任何内容,直到第一个空格字符。寻找更好的 URL 匹配正则表达式。
此外,对.html()
使用替换意味着它将破坏碰巧属于您的data-linkify
元素的任何现有链接!如果文本链接中碰巧有双引号字符,它将创建损坏的锚元素。
你可以考虑用某种非常简单的标记来识别链接——这比猜测要好得多。
相关文章:
- 在导航图标css下换行文本
- 如何在内容可编辑或其他地方找到通过自动换行创建的换行符
- 在 35 个字符后的多行文本框中自动换行
- 在 CSS/JS 中,如何在每 n 个单词处自动换行
- 如何在锚标记中自动换行文本 URL
- 三.js自动换行
- 获取字符串、提取 ID 和自动换行
- 使用棱镜.js防止自动换行
- 角度-换行文本
- 使用Javascript选择最后一次自动换行后的最后一行
- 自动换行指定长度的字符串
- 如何检测文本区域中的自动换行
- CSS/JS-你能像对待行一样对待浏览器自动换行来给它们上色吗
- 在绝对定位元素周围换行文本
- 如何用jQuery在span标签中换行文本,除了第一个单词
- 你能在@符号上换行文本吗?
- 控制jQuery中的自动换行和取消换行方法
- 如何检测一行何时自动换行到文本区域中?
- 控制文本中自动换行的位置
- 文本区域自动换行