html字符串转义与反转义

html字符串转义与反转义

html字符串转义
  • 方法一
    const htmlStr = `<div id="root" class="root">
    <div class="cls-1">
        <ul>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <div class="cls-2">
        <ol>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <div class="cls-3">
        <div class="cls-3-1"></div>
        <div class="cls-3-2"></div>
        <div class="cls-3-3"></div>
    </div>
</div>`;

    const escapeHtml = function (str) {
        if (Object.prototype.toString.call(str) !== '[object String]') {
            return '';
        }
        return str.replace(/<|&|>/g, function (match) {
            return ({
                '<': '&lt;',
                '>': '&gt;',
                '&': '&amp;'
            })[match];
        });
    };
    console.log(escapeHtml(htmlStr))
  • 方法二
    const htmlStr = `<div id="root" class="root">
    <div class="cls-1">
        <ul>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <div class="cls-2">
        <ol>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <div class="cls-3">
        <div class="cls-3-1"></div>
        <div class="cls-3-2"></div>
        <div class="cls-3-3"></div>
    </div>
</div>`;

    const escapeHtml = function (str) {
        let textNode = document.createTextNode(str);
        let div = document.createElement('div');
        div.append(textNode);
        return div.innerHTML;
    };
    console.log(escapeHtml(htmlStr))
html字符串反转义
    const htmlStr = `&lt;div id="root" class="root"&gt;
    &lt;div class="cls-1"&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;/li&gt;
            &lt;li&gt;&lt;/li&gt;
            &lt;li&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div class="cls-2"&gt;
        &lt;ol&gt;
            &lt;li&gt;&lt;/li&gt;
            &lt;li&gt;&lt;/li&gt;
            &lt;li&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div class="cls-3"&gt;
        &lt;div class="cls-3-1"&gt;&lt;/div&gt;
        &lt;div class="cls-3-2"&gt;&lt;/div&gt;
        &lt;div class="cls-3-3"&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;`;

    const unescapeHtml = function (str) {
        if (Object.prototype.toString.call(str) !== '[object String]') {
            return '';
        }
        return str.replace(/&lt;|&gt;|&amp;/g, function (match) {
            return ({
                '&lt;': '<',
                '&gt;': '>',
                '&amp;': '&'
            })[match];
        });
    };
    console.log(unescapeHtml(htmlStr))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值