如何使用JQuery在某些文本中查找URL并自动将它们转换为实际的超链接?
示例文字,
var TextMemo =“这是随机的 段落文字,但我提到了一个链接 网站在这里。 www.stackoverflow.com 这次是另一个 http(http://www.google.co.uk)“
这是一项简单的任务吗?
非常感谢, 钢钣
答案 0 :(得分:1)
答案 1 :(得分:0)
首先,它不会像替换单个字符串中的文本那么简单,因为典型的段落将由一个或多个需要正确遍历的文本和元素节点组成,以便有效地包装所需的片段文本。你不应该使用像innerText / textContent或innerHTML这样的文本。
试试这个:
var para = jQuery('#my-para')[0];
findMatchAndReplace(
para,
/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]/i,
'<a href="$&">$&</a>'
);
使用此功能:
function findMatchAndReplace(node, regex, replacement) {
var parent,
temp = document.createElement('div'),
next;
if (node.nodeType === 3) {
parent = node.parentNode;
temp.innerHTML = node.data.replace(regex, replacement);
while (temp.firstChild)
parent.insertBefore(temp.firstChild, node);
parent.removeChild(node);
} else if (node.nodeType === 1) {
if (node = node.firstChild) do {
next = node.nextSibling;
findMatchAndReplace(node, regex, replacement);
} while (node = next);
}
}
答案 2 :(得分:0)