【问题标题】:regex nickname in discord.jsdiscord.js 中的正则表达式昵称
【发布时间】:2019-12-22 20:43:35
【问题描述】:

我想删除昵称中除了字母 a 和 z 我用过这个,但它不工作 我的意思是如果⍭ Brândy Shuirø。加入服务器机器人集昵称为 Brndy Shuir 我该怎么做呢

client.on('guildMemberAdd', (member) => {


    let nickkontrol = member.user.username.split("")

    if (!allLetters('a', 'z').some(letter => nickkontrol.includes(letter))) {
        member.Setnickname.replace(/([^a-z0-9]+)/gi, ' ');
    } else {
        return;
    }

    function allLetters(charA, charZ) {
        let a = [], i = charA.charCodeAt(0), j = charZ.charCodeAt(0);
        for (; i <= j; ++i) {
            a.push(String.fromCharCode(i))
        }
        return a;
    }

});

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    首先,您的正则表达式目前没有节省空格 - 您可以通过添加空格来解决此问题,使其看起来像 /([^a-z0-9 ]+)/gi。你的替换功能也会用空格代替它。

    其次,将member.Setnickname.replace 更改为member.setNickname(replace()),这样你的最后一行应该是这样的

    member.setNickname(member.user.username.replace(/([^a-z0-9 ]+)/gi, ''))
    

    如果您仍需要更多帮助,或者此解决方案不起作用,请查看the official documentation on setNickname()

    【讨论】:

    • 替换未定义
    • 对不起,你没看错,应该是`member.user.username.replace'
    • 当我放入 if(!allLetters) 函数时它不起作用
    • 但是当我把它放在 allLetters 函数之外时,它的工作原理是如何解决这个问题的?如果有人在昵称中没有禁用字母会怎样?或者如果有人拥有完整的禁用字母昵称会发生什么?
    猜你喜欢
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2010-09-21
    • 2018-04-18
    相关资源
    最近更新 更多