用于将对象进行数据脱敏的繁难小帮手

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>    <title>Document</title>    <style>        textarea {            width: 100%;            height: 300px;        }    </style></head><body>    <div id="box">        <div>            <span>须要替换的字段:</span>            <button v-on:click="add">+</button>            <button v-on:click="del">-</button>            <span>eg:[a,3],{a:1}=>{a:3}</span>            <div v-for="item in fieldNames" :key="item.id">                <input v-model="item.fieldName" /> :                <input style="margin-top:5px" v-model="item.value" />            </div>        </div>        <div>            <div>                <span>脱敏前:</span>                <textarea v-model="sourceData"></textarea>            </div>            <div>                <span>脱敏后:</span>                <textarea v-model="targetData"></textarea>            </div>            <div>                <button v-on:click="handleData">脱敏</button>            </div>        </div>    </div></body><script>    function guid() {        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {            var r = Math.random() * 16 | 0,                v = c == 'x' ? r : (r & 0x3 | 0x8);            return v.toString(16);        });    };    var vue = new Vue({        el: "#box",        data: {            fieldNames: [],            sourceData: ``,            targetData: ``        },        methods: {            add: function () {                let obj = {                    id: guid(),                    fieldName: "",                    value: "",                };                this.fieldNames.push(obj);            },            del: function () {                this.fieldNames.pop();            },            handleData: function () {                let temp = this.sourceData;                this.fieldNames.forEach(item => {                    const { fieldName, value } = item;                    if (fieldName != "" && fieldName != null) {                        let regx = eval('/(' + fieldName + ':[^,]*)(,|})/g');                        temp = temp.replace(regx, `${fieldName}:${value}$2`)                    }                })                this.targetData = temp;            }        }    })</script></html>

操作方法:

作者:点墨
版权:本文版权归作者所有
转载:欢送转载,但未经作者批准,必须保留此段申明;必须在文章中给出原文连贯;否则必究法律责任