问题
有一段纯文本text
, 欲将其插入DOM节点div
中. text
中可能有超链接, 邮件地址等. 如果有, 识别之.
分析
- 如果只是纯文本, 插入
div
中, 只要将div.innerText
设置为text
即可. text
中的URI地址可以用正则识别, 并将其替换为<a/>
标签组成的字符串. 此时text
变成了HTML字符串html
.- HTML字符串
html
可以赋值给div.innerHTML
. 但如果原text
中存在HTML语义的 字符串呢? 因此, 在识别URI之前, 需要将原text
作转义.
解决
uri-recognition.js
(function () {
var trim = function (s) {
/*jslint eqeq:true*/
if (s == null || s === '') {