最近在項目中遇到一個麻煩的事,需要在前端編寫好代碼,發送到後端執行。並且在前端創建模板,用戶只要在可視化頁面填寫可變參數就好。
這確實很爲難,不到要寫好代碼,而且代碼的可變參數需要動態改變,最後想出來一種解決方案,使用標記{{name}}去替換。
具體項目代碼就不便於大家而分享了,寫了一個簡單實現,與大家分享。
var param = [
{"name": "IP地址", "key": "ip", "value": "127.0.0.1"},
{"name": "端口號", "key": "port", "value": "8080"},
{"name": "用戶名", "key": "username","value": "123"},
{"name": "密碼", "key": "password", "value": "456"}
];
var str = "jkj kjlk{{ip}}j klj kl jlk {{username}} {{port}}{{ip}}";
for(var i = 0;i<param.length;i++){
var reg = new RegExp("{{"+param[i].key+"}}", "g");
str = str.replace(reg, param[i].value);
}console.log(str);
通過這段代碼,就可以轉換爲可以運行的js代碼了
如果大家有更好的事項方式,歡迎大家分享。
補充一點,如果不知道怎麼運行字符串的js,只要使用
eval(str)
就可以了。