Necesito evitar agregar scripts dentro de los campos de entrada. ¿Hay alguna forma de evitar agregar códigos javascript en campos de texto/áreas de texto?
function filter($event) { var regex = /[^a-zA-Z0-9_]/; let match = regex.exec($event.target.value); console.log(match); if (match) { $event.preventDefault(); } else { return true; } }Puede desinfectar la entrada definiendo la expresión regular de la blacklist que contiene los patrones no permitidos por la entrada y luego reemplazó la parte de la cadena de entrada con una cadena vacía si coincide con la expresión regular de la lista negra.
Por ahora, acabo de agregar una expresión regular de lista negra simple (puede modificarla según sus requisitos) que reemplazará todo el texto que se encuentra entre < y > . Por ejemplo: si el usuario ingresa <script>Hello</script> (este texto de entrada completo se reemplazará con la cadena vacía en el evento keyup.
const blackList = /<+>/ig function sanitizeInput() { const inputStr = document.getElementById('inputStr').value; console.log('inputStr', inputStr) document.getElementById('result').innerHTML = inputStr?.replace(blackList, '') } <input type="text" id="inputStr" onkeyup="sanitizeInput()"/> <div id="result"></div>