【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/81105949 ...
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/81105949

如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义;

 /**
     * 对一个字符串的转义
     * @param str
     * @return {*}
     */
    function escapeHTML(str) {
        return str.replace(/$/g, '&')     // 结尾的字符用&amp替换
            .replace(/\</g, '&lt;')          // < 用&lt替换
            .replace(/\>/g, '&gt;')          // > 用&gt替换
            .replace(/\'/g, '&#39;')         // ' 用&#39替换
            .replace(/\"/g, '&quot;');      // " 用&quot替换
    }


    /**
     * 对一个字符串的反转义
     * @param str
     * @return {*}
     */
    function unscapeHTML(str) {
        // 查找所有的< > & " ' 字符,并替换掉
        return str.replace(/&lt;/g, '<')
            .replace(/&gt;/g, '>')
            .replace(/&#39;/g, '\'')
            .replace(/&quot;/g, '\"')
            .replace(/&amp;/g, '')

            // String.fromCharCode() 静态方法根据指定的 Unicode 编码中的序号值来返回一个字符串。String.fromCharCode(65,66,67) “ABC”
            .replace(/&#(\d+)/g, function ($0, $1) {
                //parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。就是 你想把string当成radix进制数解析成10进制
                return String.fromCharCode(parseInt($1, 10));
            });
    }

测试代码如下:

// 转义和反转义的功能测试
    var tagText = "<p><b>123&456</b></p>";
    // 如果直接打印输出的话,就是一个字符串
    console.log(tagText);   // <p><b>123&456</b></p>
    res = escapeHTML(tagText);
    console.log(res);  // &ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp

    // 如果把一个字符串转义为实体之后,就不会正常在页面中显示出来内容,只会显示的是一个字符串
    document.body.innerHTML = res;  // 会显示的是一个字符串,&ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp, 但是浏览器也会自动将实体转换解析

    // 如果是一个字符串的话,就会直接在网页中显示出来(按照HTML进行解析)
    document.body.innerHTML = tagText;  // 相当是设置了一段HTML代码

    // 对字符反转义之后的结果
    res = unscapeHTML(res);  // <p><b>123&456</b></p>
    console.log(res);           // 又恢复到最初始的状态

 

相关文章
|
11天前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
【4月更文挑战第24天】Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它包含中间件系统用于日志、错误处理和静态文件服务,集成多种模板引擎如EJS、Jade、Pug。框架还提供安全中间件提升应用安全,并具有良好的可扩展性,便于项目功能扩展和开发效率提升。
23 3
|
27天前
sd.js 2.0封装:更加简化请求传参内容(逐步废弃、逐渐日落2024.01.02)
sd.js 2.0封装:更加简化请求传参内容(逐步废弃、逐渐日落2024.01.02)
|
23天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
3天前
|
设计模式 前端开发 JavaScript
AngularJS是一款由Google收购的JavaScript结构框架
AngularJS是Google收购的JavaScript框架,用于构建动态Web应用,基于MVC模式,强调模块化和双向数据绑定。它简化了视图与模型的同步,通过语义化标签和依赖注入提升开发效率。适用于复杂单页面应用(SPA),但不适合DOM操作密集型或性能要求极高的场景。
11 0
|
4天前
|
JavaScript 前端开发 IDE
【JavaScript与TypeScript技术专栏】TypeScript在JavaScript库与框架开发中的作用
【4月更文挑战第30天】TypeScript,微软开发的JavaScript超集,以其强类型和面向对象特性,正成为提升Web项目质量和效率的关键工具,尤其在库和框架开发中。它通过类型系统减少运行时错误,提供内置文档,便于重构,增强IDE支持,以及支持模块化。流行框架如React、Angular已支持TypeScript,未来有望成为开发高质量库和框架的标准语言。随着社区增长,TypeScript将在Web开发领域扮演更重要角色。
|
5天前
|
开发框架 JavaScript 中间件
深入探索Node.js的Express框架:使用与中间件详解
【4月更文挑战第30天】本文深入探讨了Node.js的Express框架,介绍了其作为Web开发的强大工具,主要聚焦于基本使用和中间件。Express是基于Node.js的Web应用框架,用于构建高效的应用和API。文章详细讲解了如何安装Express,创建简单应用,以及中间件的工作原理和应用,包括中间件的顺序、错误处理和挂载位置。此外,还提到了使用第三方中间件扩展功能。理解Express基础和中间件对于开发高质量Web应用至关重要。
|
6天前
|
JavaScript 前端开发 开发者
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
|
6天前
|
SQL 存储 前端开发
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
|
16天前
|
JavaScript 前端开发
js字符串拼接
js字符串拼接
|
22天前
|
JavaScript 前端开发 API
框架分析(3)-Vue.js
框架分析(3)-Vue.js