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

198
Visualizações
¿Cómo detectar letras y su formato en mayúsculas/minúsculas de dos caracteres que deben compararse entre sí?

Necesito conseguir:

  • Si alguno de los caracteres no es una letra, devuelve -1
  • Si ambos caracteres son el mismo caso, devuelve 1
  • Si ambos caracteres son letras, pero no el mismo caso, devuelve 0

Ejemplos:

'a' y 'g' devuelve 1

'A' y 'C' devuelve 1

'b' y 'G' devuelve 0

'B' y 'g' devuelve 0

'0' y '?' devuelve -1

Ahora mi código no es correcto:

 function sameCase(a, b) { if (a.match(/az/) && b.match(/az/)) { return 1; } if (a.match(/AZ/) && b.match(/AZ/)) { return 0; } if (b.match(/az/) && a.match(/AZ/)) { return 0; } return -1; } console.log(sameCase('a', 'b')); console.log(sameCase('A', 'B')); console.log(sameCase('a', 'B')); console.log(sameCase('B', 'g')); console.log(sameCase('0', '?'));

Ayuda por favor..

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

0

Estás usando expresiones regulares incorrectamente. Deberías haber usado /[az]/ si quieres comprobar que tu carácter es una letra de la a a la z.

 function sameCase(a, b){ if (a.match(/[az]/) && b.match(/[az]/)) { return 1; } if (a.match(/[AZ]/) && b.match(/[AZ]/)) { return 1; } if (b.match(/[az]/) && a.match(/[AZ]/)) { return 0; } if (a.match(/[az]/) && b.match(/[AZ]/)) { return 0; } return -1; } console.log(sameCase('a', 'b')); console.log(sameCase('A', 'B')); console.log(sameCase('a', 'B')); console.log(sameCase('B', 'g')); console.log(sameCase('0', '?'));

about 4 years ago · Juan Pablo Isaza Relatório

0

Está utilizando una sintaxis incorrecta para las expresiones regulares.

/az/ coincide con la cadena az . Si desea probar un rango de caracteres, debe envolver el rango en [] .

Además, sus valores de retorno no coincidieron con las expectativas que describió.

 function sameCase(a, b) { if ( (a.match(/[az]/) && b.match(/[az]/)) || (a.match(/[AZ]/) && b.match(/[AZ]/)) ) { return 1; } if ( (b.match(/[az]/) && a.match(/[AZ]/)) || (b.match(/[AZ]/) && a.match(/[az]/)) ) { return 0; } return -1; } console.log(sameCase('a', 'b')); console.log(sameCase('A', 'B')); console.log(sameCase('a', 'B')); console.log(sameCase('B', 'g')); console.log(sameCase('0', '?'));

about 4 years ago · Juan Pablo Isaza Relatório

0

+++ Solo como información adicional +++

Construyendo sobre el enfoque de connexo y convirtiéndolo en una solución que no solo cubra las letras mayúsculas y minúsculas latinas básicas, uno podría reemplazar cada clase de carácter con su contraparte de escapes de propiedades unicode que además cubre cada una mucho más amplia variedad de personajes...

 // based on basic latin letter character classes. function sameCaseBasicLatin(a, b) { if ( (a.match(/[az]/) && b.match(/[az]/)) || (a.match(/[AZ]/) && b.match(/[AZ]/)) ) { return 1; } if ( (b.match(/[az]/) && a.match(/[AZ]/)) || (b.match(/[AZ]/) && a.match(/[az]/)) ) { return 0; } return -1; } // ... ok ... console.log('`sameCaseBasicLatin` invoked with basic latin letters'); console.log(sameCaseBasicLatin('a', 'b')); console.log(sameCaseBasicLatin('A', 'B')); console.log(sameCaseBasicLatin('a', 'B')); console.log(sameCaseBasicLatin('B', 'g')); console.log(sameCaseBasicLatin('0', '?')); // ... but ... not ok. console.log('`sameCaseBasicLatin` invoked with diacritic latin letters'); console.log(sameCaseBasicLatin('â', 'ê')); console.log(sameCaseBasicLatin('Â', 'Ê')); console.log(sameCaseBasicLatin('â', 'Î')); console.log(sameCaseBasicLatin('Ô', 'ä')); console.log(sameCaseBasicLatin('-', '#')); // make use of unicode property escapes. function sameCaseLetters(a, b) { // lowercase letter as unicode property escape. const regXLowerCaseLetter = (/\p{Ll}/u); // uppercase letter as unicode property escape. const regXUpperCaseLetter = (/\p{Lu}/u); if ( (regXLowerCaseLetter.test(a) && regXLowerCaseLetter.test(b)) || (regXUpperCaseLetter.test(a) && regXUpperCaseLetter.test(b)) ) { return 1; } if ( (regXLowerCaseLetter.test(a) && regXUpperCaseLetter.test(b)) || (regXUpperCaseLetter.test(a) && regXLowerCaseLetter.test(b)) ) { return 0; } return -1; } // ... ok ... console.log('`sameCaseLetters` invoked with basic latin letters'); console.log(sameCaseLetters('a', 'b')); console.log(sameCaseLetters('A', 'B')); console.log(sameCaseLetters('a', 'B')); console.log(sameCaseLetters('B', 'g')); console.log(sameCaseLetters('0', '?')); // ... and ... also ok. console.log('`sameCaseLetters` invoked with diacritic latin letters'); console.log(sameCaseLetters('â', 'ê')); console.log(sameCaseLetters('Â', 'Ê')); console.log(sameCaseLetters('â', 'Î')); console.log(sameCaseLetters('Ô', 'ä')); console.log(sameCaseLetters('-', '#'));
 .as-console-wrapper { min-height: 100%!important; top: 0; }

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