用于将对象进行数据脱敏的繁难小帮手
<!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>
操作方法:
作者:点墨
版权:本文版权归作者所有
转载:欢送转载,但未经作者批准,必须保留此段申明;必须在文章中给出原文连贯;否则必究法律责任