首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何用一个变量替换所有的变量?

问我如何用一个变量替换所有的变量?
EN

Stack Overflow用户
提问于 2020-07-08 22:16:07
回答 1查看 232关注 0票数 2

我正在为我的Discord.js机器人做一个过滤器。如果该字符不在英文字母表中,则应将其删除,以便筛选器可以检查字符串中的某个单词是否已被筛选。

代码语言:javascript
复制
const alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "j", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

bot.on("message", message => {
if (message.author.bot) return;
if (message.channel.type == "dm") return;

var args = message.content;
var argsnt = message.content.toLowerCase().toString().split("");
var str = "";

// Checking each character.

  argsnt.forEach(element => {
  if (!alphabet.includes(element) && !str.includes(element)) {
    str = str + element;
    console.log("add");
    console.log(str);
  }
});

// Removing the characters.

const search = str;
const replacer = new RegExp(search, 'g');
args = args.replace(replacer, "");

message.reply(args);

});

问题:

如果您有两个不同的符号,它将只删除其中一个符号。

如果它是开或关的东西,比如圆括号,它会给我一个关于正则表达式的错误。

注意:

我从上面的代码中收到的唯一错误是正则表达式错误。我已经研究和测试了很多东西一周多了,还没有找到任何解决方案。我现在不想做最快的方法。我只是想找到一些有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 22:22:50

实际上,您可以使用RegEx .replace()执行此操作,如下所示:

代码语言:javascript
复制
args.toLowerCase().replace(/[^a-z]/g, '')

如果使用这种方式,请确保args仍然作为消息内容,而不是拆分消息内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62796876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档