首页 > 解决方案 > Javascript:文本区域解析

问题描述

我正在为我正在制作的项目制作过滤器。

我正在寻找一种方法来做到这一点,而无需为我想要更改的每个角色定义不同变量中的所有内容。

我不想这样做:

function clean(n){
        var textfield = document.getElementById(n);
        var regex = /</gi;
        textfield.value = textfield.value.replace(regex, "&lt;");
        var regex1 = />/gi;
        textfield.value = textfield.value.replace(regex1, "&gt;");
    }

如果不将所有内容设置为不同的变量并使其替换特定字符,而不是仅用一个特定字符替换一系列字符,我将如何做到这一点?

标签: javascriptfunctionparsing

解决方案


const replaceMap = {
  '<': '&lt;',
  '>': '&gt;',
};

function escape(str) {
  return Object.keys(replaceMap).reduce((result, symbol) => {
    return result.replace(new RegExp(symbol, 'g'), replaceMap[symbol]);
  }, str);
}

推荐阅读