js 將字串當作js表示式執行方法

2022-07-29 04:12:16 字數 655 閱讀 2215

聽同事說了乙個需求。他有乙個資料物件obj,介面會給他返回乙個索引key,這個key長度不固定,根據這個key去修改obj對應的值。

舉個例子:

let obj=},"level1b":};

let key='level1.level2';

let value='wh';

現在我想修改索引key 對應的值 為變數value的值 'wh'.

方法一:使用eval 

eval函式 我看了很多書 都讓別用這個函式。但是它真的很強大。

eval(`obj.$=value`);

鑑於eval有一些作用域問題,還有一些安全性問題  聽說最好別用(這個我其實沒怎麼用過,本著學習的態度 琢磨了一下方法二)

方法二:使用new function() 它也可以在函式裡將字串當作js表示式執行。

new function('obj','key','value',`obj.$=value`)(obj,key,value);

注意點:

用模板字串的時候 只有key需要加${} obj和value雖然也是變數 但是當作普通值處理就好了。(原因的話 我認為因key代表的是動態的屬性,如果不對歡迎指正)

最後: 其實這個也可以寫個遞迴函式來解決。

js正規表示式校驗指定字串

最新乙個小表單驗證需求 只能輸入漢字,並且必須包含 支行 分行 銀行 信用社 字樣,需用正規表示式校驗 故寫出了如下的表示式 var patt1 new regexp u0391 uffe5 u652f u884c u5206 u884c u94f6 u884c u4fe1 u7528 u793e ...

js 正規表示式 郵箱 字串 URL格式匹配

var regm a za z0 9 a za z0 9 a za z0 9 驗證mail的正規表示式,a za z0 9 開頭必須為字母,下劃線,數字,if mail.match regm 無符號字串 匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff...

shell 字串 表示式

在shell程式設計中,經常要處理一些字串變數。比如,計算長度啊 擷取子串啊 字元替換啊等等,常常要用到awk expr sed tr等命令。下面給大家介紹個簡單的字串處理方法,用不著巢狀複雜的子命令。計算value字串的字元數量。或 刪除value字串中以分隔符 匹配的右邊字元,保留左邊字元。或 ...