window.ENTITIES={'/api/snippets/javascript/node.js%20-%20escape%20html%20special%20characters':[{"result":true,"message":null,"batch":{"type":"javascript","name":"node.js - escape html special characters","items":[{"id":"pq6X3j","type":"javascript","name":"Node.js - escape HTML special characters","content":"// ONLINE-RUNNER:browser;\n\n// Note: if you are looking for optimal solution check this snippet: https://dirask.com/snippets/Node-js-escape-HTML-special-characters-DKgEnD\n\n\nconst HTML_RULES = [\n { expression: /&/g, replacement: '&' }, // keep this rule at first position\n { expression: //g, replacement: '>' },\n { expression: /\"/g, replacement: '"' },\n { expression: /'/g, replacement: ''' } // or ' or '\n // ' is not supported by IE8\n // ' is not defined in HTML 4\n];\n\nconst escapeHtml = (html) => {\n let result = html;\n for (const rule of HTML_RULES) {\n result = result.replace(rule.expression, rule.replacement);\n }\n return result;\n};\n\n\n// Usage example:\n\nconsole.log(escapeHtml('
Hi!
')); // <div class="message">Hi!</div>\n\n\n// Output:\n//\n// <div class="message">Hi!</div>","source":"","author":{"id":"VDpOV0","name":"p_agon","avatar":"1629060096318__VDpOV0__w40px_h40px.jpg","points":589,"role":"BASIC"},"creationTime":1676584006000,"updateTime":1710983594000,"removalTime":null},{"id":"DWBJG1","type":"javascript","name":"Node.js - escape HTML special characters","content":"// ONLINE-RUNNER:browser;\n\n// Note: in this snippet you can find quite optimal solution to escape HTML special characters.\n\n// Hint: you can try to speed up source code much more by updating `escapeHtml()` function.\n//\n// from:\n// ```\n// for (const character of html) {\n// ...\n// ```\n//\n// to:\n// ```\n// for (let i = 0; i < html.length; ++i) {\n// const character = html[i];\n// ...\n// ```\n\n\nconst escapeHtml = (html) => {\n let result = '';\n for (const character of html) {\n switch (character) {\n // Warning: do not change cases order\n case '&': result += '&'; break;\n case '<': result += '<'; break;\n case '>': result += '>'; break;\n case '\"': result += '"'; break;\n case '\\'': result += '''; break;\n default: result += character;\n }\n }\n return result;\n};\n\n\n// Usage example:\n\nconsole.log(escapeHtml('
Hi!
')); // <div class="message">Hi!</div>\n\n\n// Output:\n//\n// <div class="message">Hi!</div>\n\n\n// See also:\n//\n// 1. https://dirask.com/snippets/Node-js-escape-HTML-special-characters-DKgEnD","source":"","author":{"id":"4o2mQa","name":"Kevin","avatar":"1629141224994__4o2mQa__w40px_h40px.jpg","points":797,"role":"BASIC"},"creationTime":1676584255000,"updateTime":1710983608000,"removalTime":null},{"id":"DKgEnD","type":"javascript","name":"Node.js - escape HTML special characters","content":"// ONLINE-RUNNER:browser;\n\n// Note: in this snippet you can find optimal solution to escape HTML special characters.\n\nconst escapeHtml = (html) => {\n let result = '';\n let escape = '';\n let helper = 0;\n let index = 0;\n for (; index < html.length; ++index) {\n switch (html.charCodeAt(index)) {\n case 34: escape = '"'; break; // \" // "\n case 38: escape = '&'; break; // & // &\n case 39: escape = '''; break; // '\n case 60: escape = '<'; break; // < // <\n case 62: escape = '>'; break; // > // >\n default: continue;\n }\n if (helper < index) {\n result += html.substring(helper, index);\n }\n result += escape; \n helper = index + 1;\n }\n if (helper < index) {\n result += html.substring(helper, index);\n }\n return result;\n};\n\n\n// Usage example:\n\nconsole.log(escapeHtml('
Hi!
')); // <div class="message">Hi!</div>\n\n\n// Output:\n//\n// <div class="message">Hi!</div>","source":"","author":{"id":"505A10","name":"Paris-Bateman","avatar":"1629030445561__505A10__w40px_h40px.png","points":504,"role":"BASIC"},"creationTime":1676773940000,"updateTime":1704799032000,"removalTime":null}]}}]};