You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测input输入内容是否存在于预设JS对象变量中

字符绘制程序开发问题及解决方案

项目背景

简而言之,我正在开发一款可将输入内容像写在纸上一样输出绘制的程序。
我已经完成了所有大写字母和数字的适配,因为代码较长,以下是简化版本的页面结构代码:

<form  class="form1 " action="">
    <input type="text" id="fname" name="fname" value="2" >
</form>
<button type="submit" id="buttonlog"  onclick="sass();">console input</button>

初始代码定义

字符路径对象

const  CapitalLetters = {
    "A" : [
     "M24,36 L24,20 L13,3 L3,20 L3,36  v-10 h20 z",
    ], 
    // 其余大写字母路径定义
}

检测函数

function sass() {
  var answers2 = document.getElementById('fname').value;
  var input = document.getElementById("buttonlog").value;
  if(CapitalLetters.hasOwnProperty(' ') == answers2) {
    console.log('yes')
    console.log(answers2);
  } else {
    console.log('no')
    console.log(answers2);
  }
}

预期实现效果

检测输入框中填入的内容是否存在于我的对象变量中,就像示例中展示的A一样。如果input标签检测到输入了大写A,后续就可以调用对应的路径代码执行逻辑。
补充说明:比如在输入框中填入字母A或者b,需要检测这个字符是否存在于对象变量CapitalLetters中。

最终解决方案

我已经找到解决方案了,首先我将CapitalLetters、LowerLetters、NumberLetters拆分为独立的对象,把每个对象的格式从:

const  CapitalLetters = {
    "A" : [
    "M24,36 L24,20 L13,3 L3,20 L3,36  v-10 h20 z",
    ],
    // 其余大写字母路径定义
}

修改为:

const path = CapitalLetters[input] = {
    "A" : [
     "M24,36 L24,20 L13,3 L3,20 L3,36  v-10 h20 z",
    ],
    // 其余大写字母路径定义
}

对应修改后,再将if语句调整为:

if(CapitalLetters.hasOwnProperty(answers2) || LowerLetters.hasOwnProperty(answers2) || NumberLetters.hasOwnProperty(answers2) ) {
  // 匹配到字符后的执行逻辑
}

感谢大家的帮助。


内容的提问来源于stack exchange,提问作者Bryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 18:36:00