Skip to main content
Respondido

Regex para validar nome completo


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?

Melhor resposta por Giovanni_Soares

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

Este tópico foi fechado para respostas.

3 comentários

Giovanni_Soares
Blipper

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


Bruno_Gabriel

Nossa, estava precisando fazer isso!

Obrigado!


Marcos_Rodrigues
Blipper
Forum|alt.badge.img+4

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