在JavaScript字符串中查找和分隔链接

时间:2014-04-26 18:58:57

标签: javascript html

我正在制作一个带有HTML + JS的Windows 8应用程序,并且有一个用户可以输入一些数据的字段,当他们重新访问页面时,我设置<div>等于他们的输入。他们可能会输入一个URL,因此我想将其转换为链接。我读过的每个例子都有关于将它封装在标签中的说明,但是当我将文本写入div时,我使用&#34; div.innerText&#34;而不是&#34; div.innerHTML&#34;如果用户将不正确的HTML写为数据,然后导致应用程序崩溃。

无论如何,我可以安全地防止用户输入错误的HTML并且文本中仍然有超链接吗?

2 个答案:

答案 0 :(得分:2)

您需要escape user data first,然后replace URLs with links并使用innerHTML属性将数据写入元素

答案 1 :(得分:1)

您可以执行此操作,使用innerHTML将链接替换为链接。

    // ... first write to element.innerText if you want to then:
    var url_regex = /(\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|])/ig;
    element.innerHTML = element.innerHTML.replace(url_regex, "<a href=\"$1\">$1</a>");