Skip to main content

Queria colocar validação de nome completo (apenas duas ou mais palavras, independe de maiúsculas ou minusculas) no me bot mas não conheço muito de regex (leia-se nada), usei uma ferramenta que conver inglês em regex e o resultado foi \w+\s\w+ , mas quando testo sempre dá inválido.

Alguém tem alguma sugestão de como eu posso fazer essa validação de duas palavras?

Boa tarde @Pedro_Gabriel_Cruz_L, você pode tentar usar esses dois scripts aqui:

1- É pra limpar o que o usuário escreve

const run = (name) => {
    var regex = /[^\u1F600-\u1F6FF\s]|me\s(chamo|xamo)|(meu\snome\s[eéè])|(^[eéè] )/gi;

    if(regex.test(name)){
        name = name.replace(regex, '').replace(" ", '')
    }

    return name.substring(0,80);
}

2- Recebe como input o resultado do último script e retorna se o nome é completo ou não

function run(input) {
    
    if (input.split(" ").length > 1) {
        return "nome completo"
    }

    return "nome incompleto";
}

Se quiser pode juntar eles também e fazer a validação dentro de um script apenas


Nossa, estava precisando fazer isso!

Obrigado!


Fiz uma pequena melhoria nesse script, vou compartilhar com vocês:
Da forma que está, nomes completos como:
👉 "Marcos " - Perceba que tem um espaço depois do nome
👉 “Marcos R” - Só tem um caractere depois do espaço

Todos esses retornariam como “nome completo”
Mas se trocar o segundo script por esse:

function run(input,name) {      

 if (input.split(" ").length > 1) {
    var contadorNome = name.split(" ")[1]
    var cont = contadorNome.length
        if (cont == 1){
            return "nome incompleto"
        }
        if (cont > 1){
            return "nome completo"
        }

        
    }

    return "nome incompleto";
}

variável “input” = retorno do primeiro script
variável “name” = variável que guardou o nome do usuário

"Marcos " | nome incompleto
“Marcos R” | nome incompleto
“Marcos Rodrigues” | nome completo