Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

268
Visualizações
Cómo crear una expresión regular para agregar una clave ssh válida de una sola línea

Actualmente, en mi aplicación, los usuarios pueden agregar teclas ssh de varias líneas en un campo. Además, el usuario puede pegar tantas teclas ssh como desee en ese campo. En este momento tengo la siguiente expresión regular para este comportamiento:

 const publicSshKeyRegex = /^(ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+/]+[=]{0,3}(\s.*)?(\n|$)/;

Pero ahora lo que quiero es no permitir que los usuarios agreguen claves ssh de varias líneas y no permitirles agregar varias claves ssh. Significa que el usuario podrá agregar solo una tecla ssh y debe estar en una sola línea. Entonces, el comportamiento esperado sería Agregar solo una tecla ssh, una sola línea.

¿Alguien podría ayudarme a crear una nueva expresión regular para un nuevo comportamiento de espera?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Esta parte del patrón (\s.*)? opcionalmente coincide con un carácter de espacio en blanco (que también puede coincidir con una nueva línea) seguido del resto de la cadena, lo que permite que coincidan 2 líneas.

Si solo desea una línea, puede omitir esa parte y agregar .* para que coincida con el resto de la línea, seguido de una nueva línea opcional y afirmar el final de la cadena.

Al hacerlo, esta parte [=]{0,3} se vuelve opcional y la clase de carácter [0-9A-Za-z+/]+ se puede acortar para que coincida con al menos un solo carácter.

 ^(?:ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+/].*\n?$

Demostración de expresiones regulares

 const regex = /^(?:ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+/].*\n?$/; [ "ssh-rsa AAAAB3NzaC1yc2a", "ssh-rsa AAAAB3NzaC1yc2a\n", "ssh-rsa AAAAB3NzaC1yc2a\ntest\n" ].forEach(s => console.log(`${s} --> ${regex.test(s)}`));

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda