質問: Discord.jsを使ってBotを作っているものです。今日始めたばかりの初心者で質問があります。 if (message.content.match('B'&&'!')) { message.channel.send('Pong.') } else if (message.content('C'&&'!')) { message.channel.send('ponpon.') } って言う構文?を作りました。 色んな記事の構文を重ねて作りました。 !なんちゃらBって言うとPongと返ってくるのは良いのですが、Cなんちゃら!って言うのでもPongと返ってきてしまいます。 X&&YはXかつYの時に実行するって書いてあったのですが、実際は!だけでも文に含まれるとPongって返ってきて困ってます。 形から入ったので単語の意味とかはあまりわからないですがよろしくお願いいたしますm(_ _)m ||これだと返信の時にBPongと返信するようにするとスパムのように自分のメッセージに反応して連投したので&&にしました。 &&なのに何故かBが入っていたものには返信はしなかったです。 高校生なので何もわからないですがよろしくお願いいたします。
回答: > X&&YはXかつYの時に実行するって書いてあったのですが、 ええと・・・簡単にいうと&&などは条件式に使えるものです。 matchの中に入れるものは条件式ではなく正規表現のパターンなので想定通りには動作しません。 また、こういうケースではしょっぱなに「メッセージがボットによるものであれば無視する」というコードを入れるのがセオリーです。