我試圖擺脫一個丑陋的 javscript eval 方法(因為我們都知道它是不安全的)。我有以下問題。我構建了一個動態搜索字串。取決于用戶決定搜索的 TLD。
這是我的代碼:
if (tld == 0) {
var searchString = 'value.tld != ""';
}
if (tld == 1) {
var searchString = 'value.tld == "de"';
}
if (tld == 2) {
var searchString = 'value.tld == "com" || value.tld == "net" || value.tld == "org" || value.tld == "info" || value.tld == "biz"';
}
if (tld == 3) {
var searchString = 'value.tld == "io"';
}
根據搜索引數“searchstring”,我使用 eval 構建此例程:
if (eval(searchString)) {
// Do something special, depends on the tld variable
}
如何在不使用“eval”的情況下重建它。前提是,代碼的第一部分保持不變。
提前致謝
缺口
uj5u.com熱心網友回復:
怎么樣:
let choices = {
1: ['de'],
2: ['com', 'net', 'org', 'info', 'biz'],
3: ['io']
};
function check(tldparam) {
if (tld === 0) {
return value.tld !== "";
} else {
return tld === tldparam && choices[tldparam].includes(value.tld);
}
}
我們像這樣測驗它:
// Got this value from somewhere
let tld = 2;
let value = {tld: 'net'};
// This is my checking criterion
let tldparam = 2;
if (check(tldparam)) {
// Do something special, depends on the tld variable
}
它符合你的目的嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400034.html
標籤:javascript 变量 动态的 评估
上一篇:如何從按鈕上的回圈中獲取id
