【发布时间】:2026-02-20 04:35:01
【问题描述】:
我正在尝试为 Discord 机器人制作一个程序,该程序采用用户提供的单个参数,检查以确保参数有效且可用,然后将其发送到 Merriam Webster API,获取它获取的 JSON返回并向最终用户显示简短定义。
我现在唯一需要回答的部分是我将如何检查以确保用户给我的论点实际上是一个有效的词,或者这是否可能?我知道如何检查以确保用户提供的参数实际上是一堆带有args[0].split("").every(isNaN) 的字母,但不知道如何在发送之前验证它是一个单词。我相信 api 可以很好地处理它,相反它只会返回它认为可能是用户试图搜索的搜索结果,除非这会使代码更加复杂,因为我必须确保定义是实际上包含在响应中。
到处搜索,我得到的只是如何查看字符串是否包含某些单词或短语。我正在使用https://dictionaryapi.com。
【问题讨论】:
-
没有投反对票,但很乐意提供反馈。首先,“有效词”的定义非常模糊。用什么语言,在什么语境下?医学术语算不算?其次,这个问题似乎是“递归的”。显然,这样做的唯一方法是与字典匹配,因此您将在查找字典之前先查找字典。至少可以说这很奇怪且效率低下。最后但并非最不重要的一点是,该问题缺乏对响应处理的研究。基于响应结构的行为是非常普遍的做法,确实比验证一个词是一个“词”更简单、更有条理
-
谢谢你,我很确定我的部分答案是从你那里得到的,是在没有验证的情况下发送它以确保它是一个英文单词(我相信我正在使用的服务有两个不同的单词和医学术语API)并根据我得到的信息处理它是否有效
-
没问题。我强烈建议只使用 1 个 API。在一个完美的世界和良好的 API 设计中,Merriam 应该返回一个错误,但看起来他们可能不会这样做。想想看,其他选择是您要么维护本地字典,并且在引入新词时必须更新,要么使用第二个 API。现在,您的程序必须依赖 2 个 API 始终启动并运行,这是风险的两倍。一种来源可以带来更好、更可靠、更有条理的设计。快乐编码
标签: javascript discord.js