Javascript将网络位置的所有实例替换为超链接
Javascript to replace all instances of a network location with a hyperlink
我试图写一些javascript执行将搜索html列出的所有网络位置(例如。''server'file
)并将其转换为超链接(例如。<a href="''server'file">''server'file</a>
)
我对如何做到这一点有点困惑,我已经做了一些搜索,但还没有真正找到任何合适的。我想我应该使用正则表达式。
有人能帮忙吗?我必须承认,对于正则表达式
如何使用jQuery选择文本节点?是个好的开始。您的方法基本上是获取文档中的所有文本节点,搜索文件模式,并用超链接替换。
示例(您可能需要调整以从match中去掉尾随标点符号):
var pattern = /(^|'s)(''''.*?)('s|$)/;
function linkifyRecursive(node) {
if (node.nodeType == 3) {
var text = node.nodeValue;
var match = text.match(pattern);
if (match) {
var span = document.createElement('span');
span.appendChild(document.createTextNode(
text.substr(0, match.index + match[1].length)));
var hyperlink = document.createElement('a');
hyperlink.setAttribute('href', 'file:///' + match[2].replace(/''/g, '/'));
hyperlink.appendChild(document.createTextNode(match[2]));
span.appendChild(hyperlink);
span.appendChild(document.createTextNode(text.substr(match.index + match[0].length)));
node.parentNode.replaceChild(span, node);
}
} else if (node.localName != 'script') {
for (var i = 0, len = node.childNodes.length; i < len; ++i) {
linkifyRecursive(node.childNodes[i]);
}
}
}
linkifyRecursive(document.body);
相关文章:
- javascript正则表达式,将多个实例替换为多行字符串中的单个实例
- 替换字符串中YouTube/Vimeo iframe的所有实例
- Javascript 替换所有实例
- 将字母表中的所有字母实例替换为另一个
- Jquery:在一个字符串中查找所有实例模式,提示用户替换模式的所有实例,然后进行替换
- 如何在 JavaScript 中替换字符串中“+”的多个实例
- 将实例变量替换为局部变量
- 正则表达式 Express 将反斜杠 的每个实例替换为字符串中的 u
- JavaScript 替换了所有在 Chrome 中不起作用的实例
- 替换 JavaScript 模板中相同值的多个实例
- 如何在使用数据表时替换Knockout中的数组实例
- 如何替换角色的所有实例
- 替换多个元素中字符的所有实例
- Javascript将换行符ASCII(13)的所有实例替换为“; ”;
- Javascript Regex找到一个字符串的实例并替换它后面的字符串
- javascript用多个html替换()多个bbcode实例
- JS/JQuery-如何迭代html(),替换字符串的每个实例
- Javascript将网络位置的所有实例替换为超链接
- 将JS字符串中引用的GUID的一个或多个实例替换为未引用的版本
- 如何将短划线 (-) 的所有实例替换为字符串中的正斜杠 (/)