如何把字符串转化成的变量然后判断是否为空?

新手上路,请多包涵

$(function () {

  var input = 2;
  var ki2 = '026';
  var ki3 = "027";
  var vule = eval('ki'+input);
  if("undefined" == typeof vule) {
      alert("NO")
  }
  else {
      alert("yes")
  }

})

用户输入的input然后再下面和ki一起组成新新字符串后转化成的一个新的变量。这个新变量和前面的ki开头的变量匹配。最后验证用户输入的值到底能不能匹配到对应变量,也就是说变量是否为空。这里永远都是yes或者要么空白不能输入NO。

阅读 2.1k
2 个回答

其实很好理解啊。当用户输入一些不存在的东西eval('ki'+input); 这句会报错
我们来看看这个eval到底是怎么样的

clipboard.png
请注意即使是正确的情况 返回的也是ki2这个变量对应的"026" 而不是"ki2"这个字符串

其实要满足你的判断用户输入是否匹配已有变量的需求 完全可以如下写法

var input = 2;//这是用户输入

var map = {
    "ki2":"026",
    "ki3":"027"
};

var key = "ki" + input;
if(key in map){
    console.log("yes! The value is " + map[key]);
}else{
    console.log("no!")
}

clipboard.png

clipboard.png

我都没明白你的需求是啥?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题