如何使用JavaScript正则匹配包含"welcome"的消息并触发表情回应
解决方案
你当前的代码使用全等判断==,只有消息内容转小写后完全等于welcome才会触发逻辑,要实现子串包含匹配可以用以下两种方案:
方案1:使用String.includes()实现(更简单直观)
先将消息内容统一转小写,再调用includes()方法判断是否包含目标子串即可:
if (message.content.toLowerCase().includes('welcome')) { message.react(reactEmoji) }
方案2:使用正则实现
你之前写法未生效大概率是误将正则字面量包裹了引号当作字符串使用,正确写法直接用正则字面量调用test()方法即可,修饰符i已经支持忽略大小写,不需要额外手动转小写:
if (/welcome/i.test(message.content)) { message.react(reactEmoji) }
如果需要仅匹配独立的welcome单词、避免匹配到嵌入在其他单词中的字符(比如welcometest这类内容不触发),可以加上单词边界修饰符:
if (/\bwelcome\b/i.test(message.content)) { message.react(reactEmoji) }
内容的提问来源于stack exchange,提问作者Kevin D
相关产品推荐
相关产品推荐

