【问题标题】:How to check if a keyword is present regardless of capitalization?无论大小写如何,如何检查关键字是否存在?
【发布时间】:2020-02-10 17:04:56
【问题描述】:

我正在编写一个程序,它会查找特定的关键字,然后仅在消息中出现关键字时才执行操作。我很难做到这一点,以便无论它们的大小写如何,它都能在关键字上拾取。以下是我目前拥有的示例。

for (var i = 0; i < keyword.length; i++) {

      if (msg.content.includes (keyword[i])) {
      msg.channel.send("Orange")
      }

var keyword = ["Apple","Banana"] 

我想出的唯一方法是将每个变体添加到关键字列表中。我将如何制作它以便它可以检测例如“apple”或“BaNaNa”而不将这些变体添加到关键字列表中?

【问题讨论】:

  • 在两个字符串上使用 '.toLowerCase()' 然后比较

标签: javascript java node.js keyword


【解决方案1】:

如果您的消息是字符串,只需将整个内容设为小写并将其与小写关键字匹配即可。

let message = msg.content.toLowerCase();
if (message.includes(keyword[i].toLowerCase()) {
    ....
}

【讨论】:

  • 非常适合我!谢谢!
【解决方案2】:

将数据库和搜索词都转换为小写。

【讨论】:

    【解决方案3】:

    您可以将消息和关键字都转换为小写,并检查消息中现有的关键字。

    if (msg.content.toLowerCase().includes (keyword[i]).toLowerCase()) {
      msg.channel.send("Orange")
    }
    

    【讨论】:

      【解决方案4】:

      如果我有一个大字符串,'Hello Marco,你好吗?',我有另一个字符串,'MarCo',我想检查第二个字符串是否在第一个字符串中,我会这样做

      const needle = 'MarCo';
      const haystack = 'Hey Marco, how are you doing?'
      
      const inc = haystack.toLowerCase().includes(needle.toLowerCase());
      if (inc) {
        console.log('its in there')
      } else {
        console.log('not in there');
      }

      【讨论】:

        猜你喜欢
        • 2016-03-01
        • 2020-07-16
        • 2015-08-10
        • 1970-01-01
        • 2015-06-04
        • 2021-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多