最简单的方法来逃避用户输入文本的所有特殊字符

时间:2018-01-04 20:30:37

标签: javascript jquery html

我正在为用户输入的选项添加一个选项:

function prependToSelect(userInput){
  $('#x').prepend('<option>' + userInput + '</option>');
}

确保userInput中没有任何危险可以破坏javascript或html的最安全,最简单的方法是什么?如果解决方案/功能在不同的情况下可以重复使用也是好的。

2 个答案:

答案 0 :(得分:3)

我的初步答案是创建一个options元素并设置innerText而不是innerHTML

但是因为你使用jQuery ......

$('#x').prepend($('<option>', {text: userInput}))

答案 1 :(得分:2)

不要将其添加为HTML。

document.querySelector("#x")
        .appendChild(document.createElement("option"))
        .textContent = userInput;

这会将其添加为.textContent,因此不会解析HTML,因此没有危险。