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

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛: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);           // 又恢复到最初始的状态

 

相关文章
|
4天前
|
前端开发 JavaScript 安全
JavaScript进阶-JavaScript库与框架简介
【7月更文挑战第11天】JavaScript库和框架加速Web开发,但也带来挑战。选择适合项目、团队技能的库或框架,如React、Angular、Vue,是关键。保持依赖更新,注意性能优化,避免过度依赖。遵循最佳实践,确保安全性,如防XSS和CSRF。学习基础,结合代码示例(如React计数器组件),提升开发效率和应用质量。
|
7天前
|
开发框架 监控 JavaScript
使用Node.js 框架( Express.js)来创建一个简单的 API 端点
【7月更文挑战第5天】使用Node.js 框架( Express.js)来创建一个简单的 API 端点
11 3
|
10天前
|
资源调度 JavaScript 前端开发
JavaScript进阶 - JavaScript库与框架简介
【7月更文挑战第5天】JavaScript库和框架构成了前端开发的核心,如jQuery简化DOM操作,Angular、React和Vue提供全面解决方案。选择时要明确需求,避免过度工程化和陡峭学习曲线。使用版本管理工具确保兼容性,持续学习以适应技术变化。示例展示了jQuery和React的简单应用。正确选择和使用这些工具,能提升开发效率并创造优秀Web应用。
|
12天前
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
|
11天前
|
JavaScript
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
|
5天前
|
存储 JavaScript 前端开发
WEB三大主流框架之Vue.js
WEB三大主流框架之Vue.js
|
11天前
|
JavaScript
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
|
11天前
|
JavaScript
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
8 0
|
11天前
|
JavaScript
js 高频实用函数封装汇总(持续更新)
js 高频实用函数封装汇总(持续更新)
10 0
|
12天前
|
JavaScript
文本,Pinia的使用,(0 , _stores_token_js__WEBPACK_IMPORTED_MODULE_1__.useTokenStore),接口中必须用引入store.js文件
文本,Pinia的使用,(0 , _stores_token_js__WEBPACK_IMPORTED_MODULE_1__.useTokenStore),接口中必须用引入store.js文件