从这里提出的关于将字符串中的普通文本替换为URL的问题....如果链接文本被
标记包围,我想使它工作.
这是我到目前为止使用的代码,它在一个看似超链接的元素中"链接"文本:
function linkify(inputText) { var replacedText, replacePattern1, replacePattern2, replacePattern3; //URLs starting with http://, https://, or ftp:// replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim; replacedText = inputText.replace(replacePattern1, '$1'); //URLs starting with "www." (without // before it, or it'd re-link the ones done above). replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim; replacedText = replacedText.replace(replacePattern2, '$1$2'); return replacedText; }
当然问题是如果链接文本是这样的:
Is this:
http://www.google.com
THE best search engine around?
然后输出我得到了这个!
Is this:http://www.google.comTHE best search engine around
因此,两个问题是
标签被完全剥离,并且
标签('THIS')之后的文本被视为超链接文本的一部分.
我怎么能克服这个小而致命的问题呢?